c++里面出现的关键字
来源:互联网 发布:淘宝定价策略 编辑:程序博客网 时间:2024/06/05 01:06
static
声明的函数只能在一个文件的内部使用,不能被外部调用,所以这样可以保证函数不予系统中的函数同名,以造成冲突。
inline(内联函数)
explict
防止函数中出现我们不想要的隐式转换
因为有时,隐式转化会将数据的值省略部分值。
const
首先我们应该了解:
定义函数时,后面加const意义
用const修饰的作用是为了增加代码的健壮性,不然程序随意修改我们不想被改变的值。
1.首先,我们应该了解const对象只能调用const成员函数。
2.const 对象的值不能被修改,在const函数中修改const成员变量的值也是错误的。
3.在const函数中调用非const成员函数也是语法错误。
4.任何不会修改数据成员的函数的都应该声明为const类型。如果编写const成员函数,不慎修改了数据成员,或者调用了其他非const成员函数,
编译器将指出错误,这无疑会提高代码的健壮性。
5.以下程序中,类stack的成员函数G
etCount仅用于计数,从逻辑上讲,GetCount应当为const函数。编译器将指出GetCount函数中的错误。
总结:const修饰符只是限制了其他函数能不能被其他函数直接调用:
const 函数
不能被非const函数直接调用
const成员变量
不能被函数进行修改
const函数能使用非const成员吗???
!!!const 成员变量必须初始化,如果不进行初始化,错误;
!!!并且初始化成员的时候尽量在类的外部进行初始化,并且必须在类的初始化参数列表中进行初始化。
#include <iostream>using namespace std;class A{ //const成员函数 public: A(); void fun() const; private: int a; // 非const成员变量 const int b ;//=1; // const成员变量,可以在类内对c //onst成员变量进行初始化,但是是g++11的版本}; A::A():a(0),b(1) //初始化列表初始化,const类型初始化 { } void A::fun() const { a = 1; ----------}
test.cpp:30:7: error: assignment of member ‘A::b’ in read-only object
b = 1;
^
#if 0 void A::fun()const { b ;//= 2; }#endifint main(int argc,char *argv[]){ A q; return 0;}
imcomplete and complete
这是因为,在C++中,类型有Complete type和Incomplete type之分,对于Complete type, 它的大小在编译时是可以确定的,而对于Incomplete type, 它的大小在编译时是不能确定的。所以,上面的代码中,如果C是Incomplete type的话,sizeof就会在编译时报错,从而达到了我们检查C是否是Complete type的目的。
那么,如何来区分Complete type和Incomplete type呢?msdn中是这样定义Incomplete type的:
(1)A structure type whose members you have not yet specified.(成员不确定的结构类型,包括struct和class)
(2)A union type whose members you have not yet specified.(成员不确定的联合类型)
(3)An array type whose dimension you have not yet specified.(没指定大小的数组)
除了上面三类,其它的应该都属于Complte type.
error: no matching function for call to XXX
函数匹配不符合
- c++里面出现的关键字
- JS里面的关键字
- js里面的关键字
- ubuntu的终端里面,随意点击就出现ctrl+C的效果,出现^C
- Python里面的with关键字
- GCD里面的关键字理解
- 一个用来统计c语言关键字出现次数的程序
- 统计输入C语言关键字的出现次数
- 统计C语言代码中常见关键字出现的次数
- C里面的const
- 有关Apex里面的关键字的使用
- c++里面的一个关键字:Chars!
- java里面的synchronized关键字详解
- Java多线程里面的synchronied关键字
- 总结一下js里面的关键字
- 【C++】统计string里面出现的字符的个数(使用count函数)
- 统计输入中C语言关键字的出现次数 (《C程序设计语言》 第二版)
- C 语言统计关键字出现次数
- 手机来电翻转静音功能
- Java设计一个用户注册的程序
- 读研总结
- 别的进程中委托显示textbox的文本
- 操作给定的二叉树,将其变换为源二叉树的镜像。
- c++里面出现的关键字
- 编写一个简单的内核模块
- Linux(CentOS6.5)下静默安装oracle11gR2(待完成)
- bzoj3456/jzoj3303:城市规划(画柿子+多项式逆元+NTT)
- vue 2.0 v-text & v-html
- Swift_协议
- 在当前文件夹中打开命令行
- Tomcat的下载,安装与配置,测试
- jq 复制