对象也可以在堆上创建:
- struct Student
- {
- int get_age(){ return m_age;}
- void set_age(int age){m_age = age;}
-
- string m_name;
- private:
- int m_age;
- };
-
- Student* p = new Student;
访问动态对象的成员使用指针的指针操作符:
- p->m_name = "zhangsan";//指针操作符获取无名动态对象的成员变量
- p->set_age(18);//指针操作符获取无名动态对象的成员变量
- (*p).set_name(28);//使用解引用+成员操作符 来完成同样的事情(比较麻烦)
完整示例:
- #include
- #include
- using namespace std;
-
- struct Student
- {
- int get_age(){ return m_age;}
- void set_age(int age){m_age = age;}
-
- string m_name;
- private:
- int m_age;
- };
-
- int main()
- {
- Student* stu = new Student;
- stu->m_name = "zhangsan";
- stu->set_age(18);
-
- cout << "My name is " << stu->m_name
- << ", I'm " << stu->get_age() << " years old." << endl;
-
- return 0;
- }
输出:
