200819C阶段一C++面向对象的编程思想

本文深入讲解面向对象编程(OOP)的基础概念,包括类与对象、构造函数、引用与指针的区别,以及内存管理等核心知识点。同时,文章还探讨了内联函数、面向过程与面向对象的编程思想差异,帮助读者理解OOP的基本原理。

一、学习的知识点

作业

  1. malloc开辟的空间在堆区,new开辟的空间在自由存储区,存满后存堆区
  2. 引用是给变量起别名,定义引用要初始化;
  3. 指针变量用来保存地址,定义时不初始化,是野指针,初始化为NULL,是空指针。
  4. 同一个引用名不能给其他变量起别名,指针可以指向其他变量
  5. 引用占的内存大小与指向的变量有关;指针占4字节
  6. 指针和引用都作为函数参数的时候,都可以改变实参的值;指针通过地址改变值,引用是直接改变
  7. 引用比指针更安全,更省内存
  8. 空指针:NULL
  9. 野指针:指向一个非法的或者已经销毁的内存的指针,如free、delete
  10. 内联函数 :inline 函数声明;

面向对象的编程思想

POP Process Oritented Programming:面向过程的程序设计;OOP Object Oritented Programming:面向对象的程序设计
OOP:对象=(算法+数据结构) 程序=对象+对象+…

类与对象

类是对象共有属性行为的概括,对象是类的具体实现

class  类名{
	public: //访问说明符,若无说明则默认为private
		//构造函数
		Clabel();//默认的构造函数,没有返回值,也没有参数 作用:初始化数据
		Clabel(int x,int y,int w,int h,char *pcontent);//普通构造,带有两个及以上的参数
		explicit Clabel(char *pcontent);//转换构造,将参数类型自动转换成类类型处理;只有一个参数,并且参数类型不是这个类类型 explicit 放弃自动转换
		Clabel(Clabel &lab); //拷贝构造
         void copy(Clabel lab);
	protected:
                 保护数据成员和成员函数;
	private: //私有的 用户不感兴趣的
        int startX;
		int startY;
		int width;
		int height;
		char content[20];
};

//成员函数的声明
void Clabel::show1()  //返回类型  类名::成员函数名(参数说明)
{
	Clabel::Gotoxy(startX,startY);
	cout<<content;
}

Clabel::Clabel()
{
	cout<<"默认构造"<<endl;
	//初始化
	startX=10;
	startY=5;
	width=20;
	height=2;
	strcpy(content,"用户名");
}

Clabel::Clabel(int x,int y,int w,int h,char *pcontent){}

Clabel::Clabel(Clabel &lab){} //类对象作为函数参数时,会创建类对象,一定会执行拷贝构造,拷贝构造一般用引用类型做函数参数
//
int main()
{
	//类对象在创建时会走构造函数,没写构造时会自动生成默认构造执行
	Clabel lab(36,8,20,2,"点菜系统");
	Clabel *pnew=new Clabel(23,11,20,2,"用户名");
	Clabel p;
	p=lab; //两个类对象可以直接赋值,会走默认的拷贝构造

	delete p; //new创建的对象要用delete释放,释放时走析构函数。
	//普通类对象在函数结束时走析构函数
	return 0;
}
  1. 通常在头文件定义类,类中存放数据成员和成员函数的声明;源文件存放函数的定义
  2. 类的数据成员是每个对象私有的,成员函数是共用的;类对象定义时占用的空间只与数据成员的类型有关
  3. 拷贝构造函数:浅复制:将对象成员的值进行简单复制 ; 深复制:在浅复制基础上,对指针型数据成员开辟空间,然后复制对应的值
  4. 析构函数不能重载,在析构函数对类对象中开辟的空间释放

二、上课没有听懂或者没有理解的地方

三、当天学习的收获

初步了解了面向对象的程序设计思想

四、作业的思路、不会的地方

参考之前的

五、其他需要反馈的问题

六、心得体会

多写程序掌握新知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值