c++ 静态成员函数

    xiaoxiao2021-03-25  110

    静态成员函数可以不以捆绑的方式调用,静态成员函数被调用时,没有当前对象的信息,所以静态成员函数不能访问数据成员,只能访问静态数据成员。但可以通过传递对象参数进去从而访问成员。

    // class_test.cpp : 定义控制台应用程序的入口点。 // #include <iostream> using namespace std; class Student{ private: string name; static int number; public: void set(string str){ name = str; ++number; } static void printNumber(){ cout<<number<<"total number\n"; } void print(){ cout << name.c_str() << "-> studnets are " << number << " numbers\n" << endl; } }; int Student::number = 0; void fn(){ Student s1; s1.set("Jenny"); Student s2; s2.set("Randy"); s1.print(); s1.printNumber(); } int main() { Student s; s.set("Smith"); fn(); s.print(); Student::printNumber();//**只有静态成员函数才可以这样调用,普通成员函数只能:对象.函数**。 return 0; } static int printNumber(){ cout<<name<<number<<"total numbers"<<endl; }

    //编译不通过,因为,静态成员函数不能访问非静态成员变量。

    可以使用如下传递对象参数的途径访问:

    static int printNumber(Student &s){ cout<<"my name is<<s.name<<endl; cout<<s.number<<endl; }
    转载请注明原文地址: https://ju.6miu.com/read-26317.html

    最新回复(0)