class ovo{
public:
ovo();
~ovo();
void init(){
value1 = value2 = value3 = 0;
}
void display(){
//printf.....
}
time_t value1;
protected:
time_t value2;
private:
time_t value3;
}
main()
{
ovo QAQ;
QAQ.init();
time_t *ptr = (time_t *)&QAQ; //get addr of QAQ
*ptr = 100;
cout<<ptr<<endl;
QAQ.display();
}
输出0 0 0;ptr++时,改变value1的值,重复ptr++取得后面成员的值。
对类的成员可以通过指针改变其值(包括private成员),取QAQ地址后,需将ptr+1得到的才是第一个成员的地址。
地址分布public-protected-private;
class首地址暂时不知道有什么用,后续补充。
还有个问题,clock1->init()有时候不能调用函数改变类成员的值,有时候可以,下次遇到补充;
.和->的区别:
这两个符号都是C++成员运算符,主要用于确定类对象和成员之间的关系,用于引用类、结构和共用体的成员。
点运算符“.”应用于实际的对象,箭头运算符“->”与一个指针对象的指针一起使用。