C++学习笔记(六)-- 类和对象 构造函数和析构函数 const成员函数 this指针 对象数组 堆栈管理变量
2016-09-06 13:48
696 查看
周末懈怠了几天,今天赶紧把重头戏对象和类看了下,对应小章节以及示例程序写了几个简单的demo用以学习以及测试。
C++学习笔记之六,本文为C++ Primer Plus
第十章对象和类的学习笔记,大抵分为以下几个小部分:
类Class的用法:如何声明以及定义,private表示声明的部分只能在类里使用,public部分外部可以访问以及修改。
类的构造函数和析构函数:构造函数的作用是使得类可以更方便地初始化,可以同时定义多重初始化的方法(不同变量的函数);析构函数的主要作用是在程序结束时释放类所占用的空间,如果类里没有用到new基本可以忽视,如果用到了new则需要写一个析构函数来Delete掉new的空间!
const成员函数:函数之后加上const保证函数不会修改成员变量,如果一个类用const修饰了,那么只能用const成员函数来保证const血统的尊贵(其他的不让用)
this指针:构造类里的一个函数当返回值需要是这个类自身时用this,具体可以看下例子比较直观。
对象数组:直接当作数组使用,唯一的不同大概就是需要有默认构造函数!!
堆栈管理变量:新建对象时像堆栈一样一个个塞进去,所以最后把这些清理掉的时候也是后定义的先剔掉。
测试代码下载地址:http://download.csdn.net/detail/zmdsjtu/9623005
具体代码如下:
#include<iostream>
#include<string>
using namespace std;
class 帅比 {
private://外部是不能访问这些的,仅供内部使用
double 身高=0, 体重=0, 颜值=0;
double BMI();
double bmi;
public:
string 名字;
void 输入个人信息();
void 输出()const;//const成员函数,确保函数不会修改调用对象
帅比(string name,
double height,
double weight);//构造函数
帅比();//构造函数
帅比 比帅(帅比 x)const;//this的用法
~帅比();
};
帅比 帅比::比帅(帅比 x)const {
if (x.bmi > bmi)return x;
else return *this; //this的用法
}
帅比::~帅比() {//析构函数,最后结束的时候会调用,加了system("pause")方便观察效果
cout << "Bye, " << 名字
<< endl; system("pause"); }
帅比::帅比(string name,
double height,
double weight) {
名字 = name;
身高 =
height;
体重 =
weight;
bmi = BMI();
}
帅比::帅比() {}
double 帅比::BMI() {
if(身高!=0)return 体重 / 身高 / 身高*10000.0;
else return 0.0;
}
void 帅比::输入个人信息() {
cout << "输入名字:" ;
cin >> 名字;
cout << "输入身高:" ;
cin >> 身高;
cout << "输入体重:" ;
cin >> 体重;
bmi = BMI();
}
void 帅比::输出()const {
cout <<名字<<"的BMI为:"<< bmi<<endl;
}
int main() {
cout << "第一种初始化的方法"<<endl;
帅比 朕; 朕.输入个人信息(); 朕.输出();
cout << "第二种初始化的方法:" << endl;
const 帅比 第二个朕("帅比", 168, 70); 第二个朕.输出();
//如果输出函数不定义成const成员函数,声明的变量就不能为const
const 帅比 更帅的人 = 第二个朕.比帅(朕);
cout << "this指针的用法:" << endl;
更帅的人.输出();
帅比 一群帅比[3];//对象数组,和普通数组用法类似,只是必须要有默认构造函数!!
system("pause");
}
最后祝大家编程愉快:)
相关文章推荐
- C/C++中关于地址、指针和引用变量的学习笔记(二) : 数组
- 【C++面向对象学习笔记】-构造函数和析构函数
- C++学习(构造函数与析构函数、对象数组与对象指针)
- 对象和类,公有类和私有类,构造函数和析构函数,const成员函数,this指针,对象数组,类作用域,抽象数据
- C/C++中关于地址、指针和引用变量的学习笔记(六) : const和void
- C++学习笔记1:构造函数和析构函数
- C/C++中关于地址、指针和引用变量的学习笔记(四) : 函数
- c++学习笔记2——指向字符串的指针数组?
- C++基础教程 学习笔记(二) 数组、字符串和指针
- C++学习笔记 数组对象
- C\C++ 程序员从零开始学习Android - 个人学习笔记(四) - java基础 - 数据类型、变量、字符串、数组
- C++学习笔记(6)——多重继承类对象的构造函数参数的传递方法
- C/C++中关于地址、指针和引用变量的学习笔记(十) : 引用型变量
- C++学习笔记(3)——成员变量、成员函数的指针
- C++(typedef、一维数组转成二维数组、C和C++区别、成员地址成员指针、构造析构函数、this指针、const用法、显示时间、const用法)
- C/C++中关于地址、指针和引用变量的学习笔记(九) : 内存结构
- C/C++学习笔记:指针与数组
- C++学习笔记二 C++标准库 数组及指针
- C++ Prime学习笔记之this指针
- C++学习笔记(13)——利用对象、引用、指针调用虚函数