C++ 从入门到放弃 (Day-01)

◼ C++的后缀是.cpp (c plus plus 简称)
◼ C++ 入门是main函数
◼ C++不允许出现两个main函数 ,Java是可以的
◼ C++完全兼容C语言
◼ C++中常使用cin、cout进行控制台的输入、输出


image.png

◼cin用的右移运算符>>,cout用的是左移运算符<<
◼ endl是换行的意思

函数重载(Overload)

◼规则
函数名相同 参数个数不同、参数类型不同、参数顺序不同
◼注意
返回值类型与函数重载无关 调用函数时,实参的隐式类型转换可能会产生二义性
◼本质
采用了name mangling或者叫name decoration技术
✓ C++编译器默认会对符号名(变量名、函数名等)进行改编、修饰,有些地方翻译为“命名倾轧” ✓ 重载时会生成多个不同的函数名,不同编译器(MSVC、g++)有不同的生成规则
✓ 通过IDA打开【VS_Release_禁止优化】可以看到

extern “C”

◼被extern "C"修饰的代码会按照C语言的方式去编译


image.png

◼ 由于C、C++编译规则的不同,在C、C++混合开发时,可能会经常出现以下操作 C++在调用C语言API时,需要使用extern "C"修饰C语言的函数声明


image.png

◼有时也会在编写C语言代码中直接使用extern “C” ,这样就可以直接被C++调用
image.png

默认参数

◼ C++允许函数设置默认参数,在调用时可以根据情况省略实参。规则如下: 默认参数只能按照右到左的顺序 如果函数同时有声明、实现,默认参数只能放在函数声明中 默认参数的值可以是常量、全局符号(全局变量、函数名)


image.png

◼ 函数重载、默认参数可能会产生冲突、二义性(建议优先选择使用默认参数)


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容