我有一个在 .h 文件中定义的全局变量,我想在此类的构造函数中分配它,该怎么做?
我的.h
extern const char* myval;
namespace mysp {
public:
MyClass();
}
我的.cpp
const char* myval; <===== not assign here
namespace mysp {
MyClass::MyClass(string str) {
myval = str; <===== how to do this
}
}
我想分配在此类的构造函数内的 .h 文件中定义的全局变量。
要从 MyClass 的构造函数中为全局变量 myval 赋值,您需要确保该变量已正确定义且可赋值。由于 myval 被声明为 const,因此如果您想在构造函数中重新分配它,则需要删除 const 限定符。
extern char* myval; // Remove `const` if you need to change the value later
namespace mysp {
class MyClass {
public:
MyClass(const std::string& str);
};
}
char* myval; // Define the variable here without `const` if you plan to reassign
namespace mysp {
MyClass::MyClass(const std::string& str) {
myval = new char[str.length() + 1]; // Allocate memory for myval
std::strcpy(myval, str.c_str()); // Copy the string content
}
}