C++中常用的符号:* & . -> 和 ::
* 符号常用来创建指针,或者获取指针中的内容。
&符号常用来给对象起别名,或者获取对象的地址。
.符号是对象调用成员变量或方法使用。
->符号是类指针指向其成员的运算符。
::是域作用符,是各种域性质的实体(比如类(不是对象)、名字空间等)调用其成员专用的。
如:
Person::setClazz();
具体的使用场景请查看如下代码:
#include<iostream>
using namespace std;
#include<string>
//自定义Person类
class Person {
public :
static string clazz;
string name;
int age;
bool sex;
static void setClazz();
};
/*静态变量和方法在类内声明,类外初始化
使用方法:类::静态变量或方法
*/
string Person::clazz = "1班";
void Person::setClazz() {
Person::clazz = "2班";
cout << Person::clazz << endl;
}
int main() {
//创建p1的Person类对象
Person p1 = { "诸葛大力",18,0 };
//使用 & 给对象起别名:pp
Person& pp = p1;
//访问静态成员变量
cout << Person::clazz << endl;
//访问静态方法
Person::setClazz();
//使用p1的别名pp,来访问成员变量
cout << pp.name << endl;
cout << pp.age << endl;
cout << pp.sex << endl;
//使用p1对象来访问静态方法
p1.setClazz();
//获取对象p1的地址,并将其返回给Person类指针p2
Person* p2= &p1;
//获取p2指针的内容,并对其成员变量重新赋值
*p2 = {"张伟",30,1};
//使用p2指针来访问成员变量和静态方法
cout << p2->name << endl;//张伟
cout << p2->age << endl;//30
cout << p2->sex << endl;//1
p2->setClazz();//2班
system("pause");
return 0;
}