【c++总结-类】一个例子知道类的创建,对象,函数实现,构造函数,析构函数

例子:

#include <iostream>
using namespace std;

class Person {
public://类函数和成员函数都是public的,供外界调用
    Person();//无参构造函数,如果没有构造函数会自动创建一个无参构造函数
    Person(string name, int age);//有参构造函数
    ~Person();//析构函数,释放内存
    string getName();//name的getter方法
    int getAge();//age的getter方法
private:
    string name;//长远变量
    int age;//成员变量
};
/*实现构造函数*/
Person::Person() {
    name = "ttf";
    age = 22;
}
/*实现有参构造函数*/
Person::Person(string name, int age) {
    this->name = name;
    this->age = age;
}
/*实现析构函数*/
Person::~Person() {
    cout << "释放了" << this->getName() << endl;
}
/*实现getter方法*/
string Person::getName() {
    return this->name;
}

int Person::getAge() {
    return this->age;
}

int main() {
    Person p;//在栈中声明一个对象,调用无参的构造函数
    cout << p.getName() << " " << p.getAge() << endl;
    //在堆中声明一个对象
    Person *person = new Person("fft", 21);//调用有参构造函数
    cout << person->getName() << " " << person->getAge() << endl;
    delete person;//使用new创建的要主动释放内存
    return 0;
}

结果

ttf 22
fft 21
释放了fft
释放了ttf

使用new关键字,前面的必须是指针形式

析构函数释放内存的特点:

- 不管是堆中还是栈中,先创建的后释放,后创建的先释放

时间: 2024-12-20 20:59:34

【c++总结-类】一个例子知道类的创建,对象,函数实现,构造函数,析构函数的相关文章

c++类大四个默认函数-构造函数 析构函数 拷贝构造函数 赋值构造函数

每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数).对于任意一个类A,如果不编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如: A(void);//缺省的无参数构造函数 A(const A&a);//缺省的拷贝构造函数 -A();//缺省的析构函数 A&operator=(const A &a);//缺省的赋值构造函数 1).“缺省的拷贝构造函数”和“缺省的赋值函数”均采用“位拷贝”而非“值拷贝”的方式来实现,倘

一个例子搞懂C++的虚函数和纯虚函数

转自https://blog.csdn.net/vincent040/article/details/78848322,并对代码做了小幅修正,在此感谢原作者. 学习C++的多态性,你必然听过虚函数的概念,你必然知道有关她的种种语法,但你未必了解她为什么要那样做,未必了解她种种行为背后的所思所想.深知你不想在流于表面语法上的蜻蜓点水似是而非,今天我们就一起来揭开挡在你和虚函数(女神)之间的这一层窗户纸. 首先,我们要搞清楚女神的所作所为,即语法规范.然后再去探究她背后的逻辑道理.她的语法说来也不复

2016/3/21 面向对象: ①定义类 ②实例化对象 ③$this关键字 ④构造函数 ⑤析构函数 ⑥封装 ⑦继承

一:定义类   二:实例化对象 1 //定义类 2 class Ren 3 { 4 var $name; 5 var $sex; 6 var $age; 7 8 function Say() 9 { 10 echo "{$this->name}在说话"; 11 } 12 } 13 //实例化对象 14 $Ren = new Ren(); 15 //调用对象的成员: 16 $Ren->name = "张三"; 17 $Ren->Say(); 显示结果

一个例子让你明白原型对象和原型链

开篇 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很复杂的东西用最简单的话语描述出来,那就说明你没有真正的理解.最近正在读<Javascript高级程序设计>,书中对原型对象和原型链的描述让我受益匪浅,下面仅用一个对比性的例子来说明. 我们经常会这么写 function Person () { this.name = 'John'; } var person = new Person(

使用springAPI以及自定义类 实现AOP的一个例子-aop编程

Spring的另一个重要思想是AOP,面向切面的编程,它提供了一种机制,可以在执行业务前后执行另外的代码,Servlet中的Filter就是一种AOP思想的体现,下面通过一个例子来感受一下. 假设我们现在需要在针对数据库进行CRUD操作时添加一组日志,即在执行CRUD方法前后分别加上一句话,实现简单的面向切面编程的功能.我用到的是spring4,在配置文件上较之之前的版本可能有些不同. 使用springAPI来实现AOP,除了spring必不可少的核心jar包,还需要两个jar包需要导入: as

python3 元类编程的一个例子

[引子] 虽然我们可以通过"class"语句来定义"类",但是要想更加细粒度的控制"类"的创建,要使用元类编程才能实现. 比如说我们要实现这样的一个约束.所有项目中用到的类都应该要为它定义的方法提供文档字符字符串.有两条可行 的路径 1):依赖工程师的自觉.自律 让他们在定义每一个方法的时候都为方法增加文档字符串, 2):通过元类来做一些 控制,如果工程师没有为方法提供文档字符,那么就直接报错,直到工程师为方法提供字符串为止. [实现1] 依赖工

C++ Primer 学习笔记_83_模板与泛型编程 --一个泛型句柄类

模板与泛型编程 --一个泛型句柄类 引言: [小心地雷] 这个例子体现了C++相当复杂的语言应用,理解它需要很好地理解继承和模板.在熟悉了这些特性之后再研究这个例子也许会帮助.另一方面,这个例子还能很好地测试你对这些特性的理解程度. 前面示例的Sales_item和Query两个类的使用计数的实现是相同的.这类问题非常适合于泛型编程:可以定义类模板管理指针和进行使用计数.原本不相关的Sales_item类型和 Query类型,可通过使用该模板进行公共的使用计数工作而得以简化.至于是公开还是隐藏下

怎么使用jquery判断一个元素是否含有一个指定的类(class)

在jQuery中可以使用2种方法来判断一个元素是否包含一个确定的类(class).两种方法有着相同的功能.2种方法如下: 1.           is('.classname') 2.           hasClass('classname') 以下是一个div元素是否包含一个redColor的例子: 1. 使用is('.classname')的方法 $('div').is('.redColor') 2. 使用hasClass('classname')的方法(注意jquery的低版本可能是

推荐一个查询Java类用法的网站

有时候我们需要知道一些类的用法,但又不知道去哪儿找到使用的例子,又或者这个例子比较难找,我们懒得去找,那么现在推荐一个网站来帮助我们. 网站URL如下: http://www.programcreek.com/java-api-examples/ 我们可以输入一个类的全限定名,或者这个类部分的名字.例如搜索"java.nio.channels.FileChannel"或者"FileChannel". 此外更好的一点就是,不止可以搜索JDK自带的类,还可以搜索更多第三