我想初始化我的类的私有变量传递一个常量字符串& aString它作为参数。C++在方法中传递const字符串引用?
这里是我的方法:
void Image::initWithTextureFile(const std::string &inTextureName)
{
Texture2D *imTexture = TEXTURE_MANAGER->createTexture(inTextureName);
if(imTexture)
{
texture = imTexture;
scale = 1.0f;
name = inTextureName; //name is a private string variable inside my class
initImplementation();
}else {
printf("Could not load texture when creating Image from file %s\n",inTextureName.c_str());
}
}
我的问题是下面的,当我把这种方法,我这样做:
myInitializer.initWithTextureFile("myFile.bmp");
当我的initWithTextureFile
的name
变量的范围内取值为inTextureName
。在这个例子中,如果我cout << name << endl;
内initWithTextureFile
我会得到"myFile.bmp"
但是,当我离开这个功能的范围,name
失去它的价值,所以,当我cout << name << endl;
我得到什么打印到控制台上。
任何人都可以指出我在这里发生了什么?
名称声明:
private:
std::string name;
没有足够的代码来回答问题。在封闭作用域(类成员,全局变量)中查找本地'name'变量。 – 2009-11-23 21:36:41
这将有助于查看名称声明。另外,检查initImplmentation()是否执行任何命名。 – progrmr 2009-11-23 21:38:14
我刚刚添加了名称变量声明。 – Goles 2009-11-23 21:38:51