c++重要思想讲解

第二章 c++重要思想讲解

类和对象

理解类之前,首先理解面向过程和面向对象编程的区别。
在这里插入图片描述
优缺点:
面向过程性能上优于面向对象,因为类在调用的时候开销比较大。但是不易维护和拓展。

什么是类?
在这里插入图片描述
**什么是对象?**当然这里不是指男女朋友的对象哈! 哈哈哈

对象即类的实例:
在这里插入图片描述
如上人类可以称为类,男人、女人称为对象。有自己特有的属性和数据。

面向对象四大特征:
抽象:对某一个具体问题进行概括
封装:对每个对象的属性和数据包装在一个类中
继承:一个类可以从现有的类派生而来
多态:指类中具有显示功能的同名函数,并根据不同的类的对象对同一消息产生的不同行为。

在这里插入图片描述

类的定义:
类由关键字class开始,后面为用户定义的类名,花括号包括部分称为类体。

class {
	public:
		void setArray();
		int setAge();
	private:
		void setList();
		void setList2();
	protected:
		……
}

特殊对象

在这里插入图片描述
禁止通过构造函数进行的隐式函数进行的隐式转换,针对某个参数的构造函数而言。

this指针

this是c++中的一个关键字,他指向当前对象,可以通过它访问当前对象的所有成员。

静态变量

只归属于类的对象所有。
用关键字static定义,一个类中可以有一个多个静态函数成员变量,所有此类的对象都可以用它。在内存分区的全局变量数据区分配内存,到结束时才释放。也就意味着,stati成员变量不会随对象的创建而分配内存,也不对随其销毁而释放。普通成员在对象创建时分配内存,在对象销毁时释放内存。
注意:静态成员变量只能在类的内部声明,在外部定义。inline static int b = 20 //C++17标准

#include<iostream>
using namespace std;


class test
{
public:
	 static int staticNum;
	 int noStaticNum = 100;
	void coutA() {
		cout <<"staticNum of t1:" << this->staticNum << endl;
		cout << "nostaticNum of t1:" << this->noStaticNum << endl;

		this->noStaticNum--;
		this->staticNum--;
	};
};
 int test::staticNum = 20; //只能在内存分区的全局变量数据区分配内存时定义

int main() {
	test t1;
	t1.coutA();

	test t2;
	t2.coutA();

}

staticNum of t1:20
nostaticNum of t1:100
staticNum of t1:19
nostaticNum of t1:100
从结果可以看出:staticNum的值被两个对象控制,而nostaticNum只收当前对象控制。

const

const需要在定义时初始化,不能修改const变量.
在内中,const成员函数可以访问任何对象,但是常对象只能访问常函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Warm wolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值