C++创建对象和销毁对象
#include <iostream> #include <string> using namespace std; class Student { public: Student(const string& name1, int age1, int no1) { name = name1; age = age1; no = no1; } private: string name; public: int age; int no; void who(void) { cout << "我叫" << name << endl; cout << "今年" << age << "岁" << endl; cout << "学号是:" << no << endl; } }; int main() { Student s("张三",25,10011); //在栈区创建单个对象格式一 //Student s 如果是无参--没有括号 s.who(); Student s1 = Student("李四", 26, 10012); //在栈区创建单个对象格式二 //单个参数时,后面的类名可以省略,比如:string str="liming" s1.who(); //在栈区创建多个对象--对象数组 Student ss[2] = { Student("张三三",25,10013),Student("李四四",25,10014) }; ss[0].who(); Student* d = new Student("赵云", 29, 10015);//在堆区创建单个对象--对象指针 //new操作符会先分配内存再调用构造函数,完成对象的创建和初始化;而如果是malloc函数只能分配内存,不会调用构造函数,不具备创建对象能力 d->who(); delete d; //销毁单个对象 Student* p = new Student[2]{ //在堆区创建多个对象--对象指针数组 Student("刘备",40,10016),Student("刘彻",45,10017) }; p[0].who(); delete[] p; //销毁 return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2019-08-12 python--运算符