类的实例化
Posted 康小武
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的实例化相关的知识,希望对你有一定的参考价值。
C++中类的实例化有两种方式——在栈中实例化和在堆中实例化
在栈中实例化为静态分配内存,不需要手动回收,超出内存系统报错。
在堆中实例化为动态分配内存,需要使用delete回收。
#include<iostream> #include<string.h> #include<cstdio> using namespace std; class Person { public: int age; string name; int sex; public: Person(int age,int sex,string name) { this->age=age; this->sex=sex; this->name=name; } int getAge(); int getSex(); string getName(); }; int Person::getAge() { return this->age; } int Person::getSex() { return this->sex; } string Person::getName() { return this->name; } ostream &operator<<(ostream &os,Person &p) { os<<p.getAge()<<" "<<p.getSex()<<" "<<p.getName(); return os; } ostream &operator<<(ostream &os,Person *p) { os<<p->getAge()<<" "<<p->getSex()<<" "<<p->getName(); return os; } int main() { //在堆中实例化 Person *p1 = new Person(1,1,"name1"); //在栈中实例化 Person p2(2,2,"name2"); cout<<p1<<endl; delete p1; cout<<p2<<endl; }
在堆中实例化需要用指针来接收实例化的对象。
以上是关于类的实例化的主要内容,如果未能解决你的问题,请参考以下文章