静态成员函数中不能使用非静态成员变量,因为静态成员函数提供不依赖于类数据结构的共同操作,它没有this指针。静态成员是属于整个类的,他不依赖于某个对象,而普通成员函数专属于类定义的个某个对象,这时候如果调用该静态成员函数,编译器不知道该函数中被引用的普通成员变量属于哪个具体对象,故报错(具体将在下面代码中详...
int STATIC_A::c=100; STATIC_A::STATIC_A (){ //构造函数一般给变量一个初始值 a=100; b=10*a; }; void STATIC_A::disp(STATIC_A &w){ w.plus(); //调用类中普通成员函数 cout<<"a="<<w.a<<"\t"<<"b="<<w.b<<"\t"<<"c="<<c<<endl; //注意c变量与a、b变量使用异同 }...
static void staticFunction(MyClass& obj) { // 在静态成员函数中访问非静态成员变量 std::cout << "m_data = " << obj.m_data << std::endl; } }; ``` 在静态成员函数 `staticFunction` 中,我们通过传递一个 `MyClass` 对象的引用 `obj` 来访问 `m_data`。 然后,你可以这样调用静态成员函数...
cpp:类中的静态成员变量和静态成员函数(class) 一、类中的静态成员变量和静态成员函数: 1、类中的静态成员变量和静态成员函数:它们属于‘类’不属于‘对象’, 它们没有指针‘ this’。 2、类中的静态成员变量和静态成员函数:静态成员变量,只能在类外初始化;静态成员函数只能访问静态成员变量、静态成员函数以及与...
1. 静态成员函数只能访问静态成员变量,不能访问普通成员变量。 理解:static成员函数是是共享的,存储在一块空间中,而普通的成员变量是属于每个类对象的,每个类对象存储在独立的空间中,若在静态成员函数中直接访问普通成员变量,那么它将无法区分普通的成员变量属于哪个类对象。
1. 静态函数可以使用对象或者类名进行调用, 非静态函数(不加static修饰的函数)只能使用对象进行调用。 2. 静态函数可以直接访问静态的成员,但是不能直接访问非静态的成员。 原因:静态函数可以使用类名调用,而这时候对象可能还没有存在内存中,这时候非静态的数据也就不存在内存中。
void main( ) { M P(5); P. f1(P); }相关知识点: 试题来源: 解析 M::f1(P);M::f1(P); 解析:由于f1是类M的静态成员函数,即说明类M的任何对象都共享一份 f1,因此,不仅可以从对象那里访问f1,还可以用域操作符::通过类名来访问。反馈 收藏 ...
2.在需要使用类的静态成员函数的文件中,包含公共的头文件,例如:// File1.cpp #include "MyClass....
void myFunc(MyClass* obj);```2. 在实现静态成员函数的文件中,需要包含该类的头文件,并在函数名...
intnum;//普通成员变量 staticintdata;//静态成员变量(类内声明) public: //普通成员函数 依赖于 对象的 必须对象调用 intgetData(void) { returndata; } }; //定义的时候 不需要加static intData::data=100;//类外定义+初始化 intmain() {