当前搜索:

C++对象的内存模型

【学习于C语言中文网,请勿转载】 类是创建对象的模板,不占用内存空间,不存在于编译后的可执行文件中;而对象是实实在在的数据,需要内存来存储。对象被创建时会在栈区或者堆区分配内存。 直观的认识是,如果创建了 10 个对象,就要分别为这 10 个对象的成员变量和成员函数分配内存,如下图所示: 不同对象的成员变量的值可能不同,需要单独分配内存来存储。但是不同对象的成员函数的代码是一...
阅读(249) 评论(2)

C++函数重载过程中的二义性和类型转换

【学习于C语言中文网,请勿转载】 发生函数调用时编译器会根据传入的实参的个数、类型、顺序等信息去匹配要调用的函数,这在大部分情况下都能够精确匹配。但当实参的类型和形参的类型不一致时情况就会变得稍微复杂,例如函数形参的类型是int,调用函数时却将short类型的数据交给了它,编译器就需要先将short类型转换为int类型才能匹配成功。 现在有以下几种形式的函数重载(例1): #...
阅读(514) 评论(0)

C++中到底在声明中还是定义中指定默认参数

【学习于C语言中文网,请勿转载】 除了函数定义,你也可以在函数声明处指定默认参数。不过当出现函数声明时情况会变得稍微复杂,有时候你可以在声明处和定义处同时指定默认参数,有时候你只能在声明处指定,请看下面的例子(示例1): #include using namespace std;void func(int a, int b = 10, int c = 36);int main(){...
阅读(396) 评论(0)

规范使用C++内联函数

【学习于C语言中文网,请勿转载】 inline 关键字可以只在函数定义处添加,也可以只在函数声明处添加,也可以同时添加;但是在函数声明处添加 inline 关键字是无效的,编译器会忽略函数声明处的 inline 关键字。也就是说,inline 是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。 尽管大多数教科书中在函数声明和函数定义处都增加了 inline 关键字,但我认为...
阅读(216) 评论(0)

使用内联函数代替宏

【学习于C语言中文网,请勿转载】 我们在《C语言入门》中讲到,宏是可以带参数的,它在形式上和函数非常相似。不过不像函数,宏仅仅是字符串替换,不是按值传递,所以在编写宏时要特别注意,一不小心可能就会踩坑。 使用宏的一个经典例子是求一个数的平方,如下所示: #include using namespace std;#define SQ(y) y*yint main(){ int...
阅读(167) 评论(0)

C++中不一样的const

【学习于C语言中文网,请勿转载】 在C语言中,const  用来限制一个变量,表示这个变量不能被修改,我们通常称这样的变量为常量(Constant),《C语言const:禁止修改变量的值》一节已经进行了细致的讲解。 在C++中,const 的含义并没有改变,只是对细节进行了一些调整,以下是最主要的两点。 C++中的 const 更像编译阶段的 #define 先来看下面的两条语句:...
阅读(154) 评论(0)
    个人资料
    • 访问:334393次
    • 积分:7471
    • 等级:
    • 排名:第3348名
    • 原创:313篇
    • 转载:12篇
    • 译文:89篇
    • 评论:97条
    【目录索引】

    闲适音乐

    博客专栏
    最新评论

    Email: 457086306@qq.com