C++面向对象入门(十二)静态成员变量
静态成员变量
特点:
所有类对象共享一个静态成员变量
类内声明, 类完定义(初始化)(必须)
编译阶段分配内存, 全局区?
如果访问权限设置为公共(public), 可在类外 直接通过类名::静态成员变量名访问, 也可使用对象访问, 语法为: 对象名.静态成员变量名
#include <iostream> #include <string> using namespace std; /** * 静态成员变量 * 特点: * 所有类对象共享一个静态成员变量 * 类内声明, 类完定义(初始化)(必须) * 编译阶段分配内存, 全局区? * 如果访问权限设置为公共(public), 可在类外 直接通过类名::静态成员变量名访问, 也可使用对象访问, 语法为: 对象名.静态成员变量名 */ class Rider { private: string name; string status; string driver; public: static string manufacturer; Rider() {} Rider(const string &name, const string &status, const string &driver); ~Rider() { } void showInfo() { cout << "{name:"<< name << ", status:" << status << ", driver:"<< driver << ", manufacturer:"<< manufacturer << "}" << endl; } }; //类外初始化静态成员变量(个人觉得类外定义更贴切) //语法 //数据类型 类名::静态成员变量名 = 值; string Rider::manufacturer = "Toei Tokyo"; Rider::Rider(const string &name, const string &status, const string &driver) : name(name), status(status), driver(driver) {} void test1() { Rider r("Zero-One", "Biting Shark", "Hiden Aruto"); r.showInfo(); //如果访问权限设置为公共(public), 可在类外 直接通过类名::静态成员变量名访问, cout << "Rider Zero-One's manufacturer is " << Rider::manufacturer << endl; //也可使用对象访问, 语法为: 对象名.静态成员变量名 cout << "Rider Zero-One's manufacturer is " << r.manufacturer << endl; } int main() { test1(); system("pause"); return 0; }
路漫漫其修远兮,吾将上下而求索。

浙公网安备 33010602011771号