C++ Primer 学习笔记
来源:互联网 发布:linux 小数取整 编辑:程序博客网 时间:2024/05/20 20:47
C++基础
变量类型
(1) char 类型是否是有符号由编译器决定。有符号范围为:-128~127
(2) 经验准则
a、明确不能为负时,用无符号;
b、用int执行整数运算;
c、算术表达式不要有char、bool,如果要用要明确signed char 或 unsigned char;
d、浮点运算用 double。
(3) 类型转换
a、当赋值给有符类型超出范围是,是未定义的行为。
声明与定义
定义分配了空间,且可能赋值
extern int a=1; // 是定义
const
变量初始化时,不区分const、非const,都可以赋值
2.
const int *p; //允许改变p,不允许改变p所指变量int *const p; //不允许改变p,允许改变p所指变量
如果想在多个文件中共享const变量,定义前要加extern,然后在其他调用的文件中声明
int i=5; const int &r = i; //正确:不允许通过r来改变i 的值int i=5; const int *r = &i; //正确:不允许通过r来改变i 的值
定义类的 const 数组
//在.h文件中声明定义static const int kParamMaxLen[MAX_PARAM_TYPE];//在.cpp文件中初始化const int CCalc::kParamMaxLen[MAX_PARAM_TYPE] = {2,3};
函数名加const,void function() const{}
class aa{ int num;public: aa(){ int b =10; num = b; }; void out1(){ cout<<num<<endl; } void out2() const{ cout<<num<<endl; } void out3() const{ num+=10; //出错,const函数不能修改其数据成员 cout<<num<<endl; }};int _tmain(int argc, _TCHAR* argv[]){ aa a1; a1.out1(); a1.out2(); a1.out3(); const aa a2; a2.out1(); // 错误,const的成员 不能访问非const的函数 a2.out2(); a2.out3(); return 0;}
typedef
typedef char* pstring; const pstring str; //表示指向char 的 常量指针 const char* str; //表示指向常量char 的指针
字符串、向量、数组
(1) 头文件不应包含using声明
因为头文件会被拷贝到引用它的文件中去,这样可能会引起名字冲突。
string s5 = "hiya"; //拷贝初始化string s6 ("hiya"); //直接初始化
(3)string的操作
os<<s //将s写到输出流os当中,返回osis>>s //从is中读取字符串赋给s,字符串以空白分隔,返回isgetline(is, s) //从is中读取一行赋给s,返回is
(4)有size()函数就不要定义int类型。
(5)改变字符特性—-cctype头文件
迭代器
(1) 使用迭代器的循环体,不要向迭代器所属容器添加元素。
表达式
(1) 取余
m%(-n) = m%n ; (-m)%n=-(m%n)
(2)前置运算符
优先使用前置运算符。提高性能。
函数
(1) 预编译器定义了4个用于程序调试的变量
__func__ 是编译器定义的一个局部静态变量,用于存放函数的名字__FILE__/__LINE__/__TIME__/__DATE__
(2) 函数匹配
void ff(int) void ff(short) ff('a') //char会提升为int,调用ff(int) void f1(long) void f1(float) f1(3.14) //错误:二义性调用.3.14类型是double,既能转成long也能转成float
阅读全文
0 0
- C++PRIMER学习笔记
- c++primer学习笔记
- c++primer学习笔记
- C++primer学习笔记
- c++primer 学习笔记
- C++Primer 学习笔记
- c++primer学习笔记
- C++Primer学习笔记
- C++PRIMER 学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- c++primer学习笔记
- C++Primer Plus学习笔记
- linux & C++Primer 学习笔记
- c ++Primer学习笔记之一
- 学习《c++primer》笔记一
- 学习《c++primer》笔记二
- intellij license server
- ofbiz实战10——学生管理实现代码
- windows下搭建virtualenv、virtualenvwrapper虚拟环境
- 【腾讯TMQ】【Android场景化性能测试专栏】方向与框架篇
- 关于引入的js代码后加?v=01291
- C++ Primer 学习笔记
- sql语句查询某天、某周、某月、某年的数据
- 登录时获取验证码
- class文件结构[2] static final、static、final、普通类型成员变量的赋初值
- php获取本日,昨日,本周,本月,上月,本年时间计算
- BZOJ1711: [Usaco2007 Open]Dining吃饭
- nodejs
- Laravel 手动分页
- 最简单的基于FFmpeg的AVfilter的例子-修正版