c++ 创建对象

简介: c++ 创建对象

1.定义类 一般写在.h文件中

#include<string>
#include<iostream>
using namespace std;
void print(char content[]);
void TestString1();
void TestString2();
void TestString3();
class Person
{
private:
    int age;
public:
    string name;
    Person(string name);
    ~Person();
    void printName();
};
Person::Person(string name)
{
    this->name = name;
}
Person::~Person()
{
    cout << "~Person()" <<endl;
    age=0;
    name = nullptr;
}
void Person::printName()
{
    cout << name <<endl;
}

2.使用

不通过“new”关键字,在栈上创建

通过关键字“new”,在堆上创建

两种方式的区别

在栈中的对象,其作用范围只是在函数内部,函数执行完成后就会调用析构函数,删除该对象。使用 “.” 而不是 “->” 调用对象的方法。

在堆中的对象,必须要程序员手动的去管理该对象的内存空间 。用运算符“->”调用对象的方法。new出来的对象必须用指针指明地址。

#include<string>
using namespace std;
#include"test.h"
int main(){
    Person person("wang");          //在栈中创建对象
    Person pp = Person("aa");       //在栈中创建对象
    //Person *ppp;                    //只是声明对象 没有分配空间
    Person *p = new Person("aaa");  //在堆中创建对象
    p->printName();
   
    person.printName();
    TestString3();
                         
    string name ="abc";
    string name1("abc");
    string name2(10,'a');
    string name3(name1); //用name1构造name3
    string name4(name1,2);//用name1的前两个字符构造name4
    delete p;  //用完及时删除空间
    return 0;
}

静态对象


(1)全局静态对象在程序执行 main() 之前已经分配好存储空间 ,在 main() 执行完成后进行释放。

(2)局部静态对象是从其所在函数第一次被调用时进行创建,直到整个程序结束才进行销毁;局部静态对象只有在第一次调用时进行初始化操作。


目录
相关文章
|
5月前
|
设计模式 算法 编译器
【C++入门到精通】特殊类的设计 |只能在堆 ( 栈 ) 上创建对象的类 |禁止拷贝和继承的类 [ C++入门 ]
【C++入门到精通】特殊类的设计 |只能在堆 ( 栈 ) 上创建对象的类 |禁止拷贝和继承的类 [ C++入门 ]
50 0
C++中创建对象的时候加括号和不加括号的区别
c++创建对象的语法有----- 1 在栈上创建 MyClass a; 2 在堆上创建加括号 MyClass *a= new MyClass(); 3 不加括号 MyClass *a = new MyClass; 4.---------------MyClass a();声明了一个返回值为MyClass类型的无参函数。
2015 0
|
Go C++ 关系型数据库
const对象,NULL和nullptr,C++中创建对象数组
 1.定义成了const之后的类 #include &lt;iostream&gt; class area { public: int x; int y; mutable int z; //不受const约束的类成员 area() :x(10), y(10), z(2) { } void printxy()const //不可以访问类中局部变量
1220 0
|
2天前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
2天前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)
|
5天前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
20 3
|
5天前
|
存储 编译器 C语言
C++入门2——类与对象1(类的定义和this指针)
C++入门2——类与对象1(类的定义和this指针)
15 2
|
6天前
|
安全 C语言 C++
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
27 4
|
4天前
|
C++
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
36 1
|
5天前
|
编译器 C语言 C++
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
11 1