TCHAR* wndCLassName = TEXT(“Window Class Name”); 只有静态常量整型数据成员才可以在类中初始化 改对
时间: 2024-10-19 21:04:53 浏览: 9
C++ 怎么让静态变量只初始化一次
TCHAR* 类型通常用于Windows API中的宽字符字符串,特别是在MFC(Microsoft Foundation Classes)中。在这个例子中,`TEXT("Window Class Name")` 是一个宏,它实际上是将字面的字符串转换成宽字符数组。然而,你提到的"只有静态常量整型数据成员才可以在类中初始化"这个说法并不完全适用于C++。
在C++中,变量可以在声明时进行初始化,不仅仅是静态常量整型数据成员。对于像 `TCHAR*` 这样的指针,你可以直接在类的成员初始化列表中初始化,例如:
```cpp
class MyClass {
public:
MyClass() : wndCLassName(TEXT("Window Class Name")) {} // 初始化宽字符指针
private:
TCHAR* wndCLassName;
};
```
但是要注意的是,如果`wndCLassName`是你想要修改的字符串内容,那么应该将其声明为`std::wstring`而不是`TCHAR*`,因为`TCHAR`通常是`wchar_t`,而`TEXT`宏需要配合宽字符串处理。如果你确实需要动态分配内存或者使用C风格字符串,可以考虑使用`LPCWSTR` 或者 `LPCTSTR`。
阅读全文