c++基础视频day1

授课思路

c课程框架总结
类基本概念入门安践
		面向过程和面向对象编程感性认识
		类和对象的hello例子、典型错误案例(引出为什么要有成员函数)
C和C+语言关系
        C++对c的扩展
        namespace (作用域)
        实用性
        register函数检测增强
        struct类型加强
        c++更加强调类型(c+中所有的变量和函数都必须有类型) 
        const
        引用int &b=c; const int &b=10;
        boolen
        a<b?a:b 三目运算符
        struct 类型加强

        内联函数inline
        函数默认参数
        函数占位参数
        默认参数和占位参数混搭
        函数重载(overroad) 
        new delete

用面向对象的方法

1.类的抽象 成员变量和成员函数
2.实例化 类的对象
3.求面积

  面向过程加工的是 一个一个的函数
  面向对象加工的是:一个一个的类

4.main集成测试
思考1:类的调用 执行过程分析==>类代码不是一步一步指向
  类是一个数据类型,(固定大小内存块的别名); 定义一个类,是一个抽象的概念,不会给你分配内存
用数据类型定义变量的时候,才会分配内存
思考2:抛砖: c++编译器是如何处理 多个对象,调用类的成员函数的;具体一点:如何区分是c1 c2 c3 调用了getS,抛砖…

三目运算符

  • 在C语言中,表达式的返回值是变量的值
  • 在C+中,表达式返回的是变量的本身(变量所标明的那块内在空间的地址)

c语言中的三目运算符返回的是变量值,不能作为左值使用.
c++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地方.

c语言中的const是一个冒牌贷 c++中的const是真正的常量

int main(){
    const int a = 10;
    int *p =NULL;
    p=(int *) &a;
    *p = 20;
    printf("a:%d \n",a);
}

const 和define

对比加深
	C++中的const常量类似于宏定义
	const int c = 5; ≈ #define c 5
C++中的const常量与宏定义不同
	const常量是由编译器处理的,提供类型检查和作用域检查 
	宏定义由预处理器处理,单纯的文本替换
const常量是由编译器处理的,提供类型检查和作用域检查

 结论

C语言中的const变量
		C语言中const变量是只读变量,有自己的存储空间
C++中的const常量
		可能分配存储空间,也可能不分配存储空间  
		当const常量为全局,并且需要在其它文件中使用,会分配存储空间
		当使用&操作符,取const常量的地址时,会分配存储空间
		当const int &a = 10; const修饰引用时,也会分配存储空间

引用的本质

引用的本质
1)引用在C++中的内部实现是一个常指针
Type& name Type* const name
2)C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同。
3)从使用的角度,引用会让人误会其只是一个别名,没有自己的存储空间。这是C++为了实用性而做出的细节隐藏

Int main()
{
int x  = 10;
		func(x);
}
4)	请仔细对比间接赋值成立的三个条件
1定义两个变量 (一个实参一个形参)
2建立关联 实参取地址传给形参
3*p形参去间接的修改实参的值

左面引用,实际是编译器转成了右面的的实现

函数返回值是引用(引用当左值)

C++引用使用时的难点:
		当函数返回值为引用时
			若返回栈变量
			不能成为其它引用的初始值
			不能作为左值使用
		若返回静态变量或全局变量
			可以成为其他引用的初始值
			即可作为右值使用,也可作为左值使用
		C++链式编程中,经常用到引用,运算符重载专题
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值