I g herhangi bir uyarı (-Wall -pedantic) ++C++ bir const std :: string &?
#include <iostream>
#include <string>
using namespace std;
class Foo
{
public:
Foo(const std::string& s) : str(s)
{ }
void print()
{
cout << str << endl;
}
private:
const std::string& str;
};
class Bar
{
public:
void stuff()
{
Foo o("werd");
o.print();
}
};
int main(int argc, char **argv)
{
Bar b;
b.stuff();
return 0;
}
Ama bunu çalıştırmak sadece satır yazdırılır ile derler aşağıdaki kodu vardır. Neler oluyor? Bu iç şeyler yapmak olsaydı
:
string temp("snoop");
Foo f(temp);
f.print();
o zaman çalışıyor! aslında başlık altında şu şekilde derler çünkü
şerefe, beynim o elde değildi neden bilmiyorum: parametre olarak bir const değerini alarak bir anlamı yok –
s. Sadece 'std :: string' kullanın. –
@MilesRout Bu tamamen doğru değil. Dizeyi değiştirmek istemediğinizi biliyor olabilirsiniz ve const'ı bildirerek derleyicinin bunu yapmadığınızı doğrulamasına izin vermiş olursunuz. – Erik