静态成员变量赋值
the static member variable assignment
#include <iostream>
using namespace std;
class base
{
static base* mybase;
};
base::mybase = NULL;
char* str = "hello world";
int main()
{
std::cout<<"hello world"<<std::endl;
return 0;
}
为什么代码行"base::mybase = NULL"编译器出错!
您还应该在行中给出变量的类型:
base* base::mybase = NULL;
你也需要给出类型。mybase
的类型base*
:
base* base::mybase = NULL;
这将定义一个base*
,该是base
的成员,称为mybase
并将其初始化为NULL
。
为什么代码行
base::mybase = NULL
编译器错误!
因为它不是有效的声明。它将是一个有效的赋值表达式(在可以访问类基的私有成员的上下文中(,但不能在命名空间范围内使用表达式语句。
若要提供静态成员的定义,请使用
base* base::mybase = NULL;
相关文章:
- 为"adjacent"变量赋值时出现问题
- 非常量变量只读位置的赋值
- 变量在使用赋值语句赋值后恢复为以前的值
- 为什么我不能在返回 const 的布尔函数中为类成员变量赋值?C++
- 如何在 c++ 中正确声明/赋值变量的值
- 在未初始化的变量上使用复合赋值运算符(+=, ..)不是C++中的UB?
- c++问题:给一个变量赋值后,另一个变量发生了变化
- 如何在不使用赋值运算符的情况下为动态变量赋值?
- 为什么我不能为变量赋值函数?
- 可视化的c++变量赋值使代码正常工作
- 作为赋值(增加引用变量)C++的左操作数所需的左值
- 如何为结构类型变量赋值
- const变量是否可以在具有默认值的参数中赋值(作为可选参数)
- C++中重载复合赋值运算符不会更改变量
- 初始值设定项列表与构造函数赋值与变量定义
- 在结构的构造函数中使用类方法赋值变量
- 原子变量的多重赋值是原子操作吗?
- 在 If 语句 [C++] 中赋值变量
- 赋值变量时c++未处理异常访问冲突
- 使用reinterpret_cast赋值变量后可能的析构函数