c++基础1

C++

面向对象程序设计--类的设计--类图

C

面向过程程序设计--编程思想--流程图

编程

解决问题,描述问题

C++---封装,继承,多态 友元 抽象

初始化列表

类型名 变量名 {} ;

int a {};

输入输出

头文件:#include<iostream>

              using namespace

//cin 键盘

cin  >> ch >> a;//输入流

cout << "a=" << a <<"ch =" << end1;//输出流 

类:

将现实生活中的事物抽象出来,将它的不同类型的属性以及与这些属性相关的操作封装在一起,有的是私有的,不允许外界访问,

    有的是公有的,构成一个集合,形成一种新的数据类型---类(构造数据类型)

     类是抽象出来的,本身不占内存空间

类的大小

  1. 类里面数据成员大小之和

  2. 普通函数是不占类的空间大小

  3. static数据成员不在类中分配空间

  4. virtual函数占一个指针的大小

对象:是类的一个实例化,是现实生活中实实在在存在的,占用内存单元.

访问权限

  • public:除了自己外界也可以使用---操作
  • protected:除了自己,子类可以访问,外界不能访问--除过友元
  • private:除了自己,其他都不可以访问--除过友元 ---属性

public: //操作(成员函数)

private://属性(成员变量)

函数参数带默认值

  1. 可以不传参数
  2. 如果传参了,就用所传递的值
  3. 如果有一个参数带默认值,则后面的必须带
  4. 默认参数的默认值,只在声明的时候带,在定义的时候不带(如果将函数的定义放在类的外部,则不需要带默认值)

inline函数

内联函数--用空间的消耗换取了函数调用时间的消耗

将功能比较简单,代码比较短小(一般不超过5行)的函数作为内联来编译

inline只是程序员的建议,至于编译器是否按照inline来编译,不一定

宏定义和inline的区别

  1. 宏定义是在编译之前,inline是在编译时
  2. 宏定义会出现歧义,inline函数不会
  3. 宏定义是预处理命令,inline是函数

非静态成员函数中有隐含的this指针,接收当前对象的地址

一个实实在在的对象,应该有合法的属性,而不是出来之后,再去设置属性

要实现程序的过程,必须在对象出来的这一时刻,初始化合法的值,而且不能由程序员调用

要给属性合法的值,必须通过成员函数初始化,那么这个成员函数就应该比较特殊---能在对象出来的时候自动调用

构造函数

构造对象(给数据成员分配空间,给合法值),由系统调用,在接近在定义对象时自动执行一次。

用途: 

1)构建对象  2)初始化对象中的属性  3)类型转换

对于C语言:有存储空间,即可操作

对于C++:有存储空间,不一定有对象,需要调用构造函数;有对象,一定有存储空间(空类型也要分配一字节作为占位符)

函数特征

1)函数名与类名相同

2)没有返回类型(不是void),有返回值(即构造函数所创立的对象)

3)构造函数只能调用一次

4)构造函数可以重载

5)可以在类中定义,也可以在类中声明,在类外定义

6)如果类说明中没有给出构造函数,则C++编译器自动给出一个缺省(默认)的构造函数(类名(void){})

sizeof是在编译的时候确定此对象的大小

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值