1、C++基础与编程规范
规范:
1.2 在每个类声明之后、每个函数定义结束之后都要加空行
void Function1()
{
}
void Function2()
{
}
1.3
一行代码只做一件事情,如只定义一个变量,或只写一条语句
if、for、while、do 等语句自占一行,执行语句不得紧跟其后
在定义变量的同时初始化该变量
赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符
程序的分界符‘{’和‘}’应独占一行并且位于同一列
void Func1(int x, int y, int z); // 良好的风格
{
}
void Func1 (int x,int y,int z); // 不良的风格{
}
应当将修饰符 * 和 & 紧靠变量名
int *x, y;
// 此处 y 不会被误解为指针
块的注释常采用“/*...*/”
行注释 一般采用“//...”
类名和函数名用大写字母开头的单词组合而成。
变量的名字应当使用“名词”或者“形容词+名词”
变量和参数用小写字母开头的单词组合而成
常量全用大写的字母,用下划线分割单词
静态变量加前缀 s_(表示 static)
float oldValue;
float newValue;
1.1、头文件的结构
1.1.1 为了防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预处 理块。
1.1.2 #include <filename.h> 格式来引用标准库的头文件
1.1.3 用 #include “filename.h” 格式来引用非标准库的头文件
1.2 if(flag) //表示flag为真 if (!flag) // 表示 flag 为假
if (flag == TRUE) if (flag == 1 ) //不良的
1.3 浮点变量与零值比较
不可将浮点变量用“==”或“!=”与任何数字比较。
if ((x>=-EPSINON) && (x<=EPSINON))
其中 EPSINON 是允许的误差(即精度)。0.00000001
1.4 指针变量与零值比较
if (p == NULL) if (p != NULL)
1.5 const 与 #define 的比较
const 的作用:只读 三种方式
const常量有数据类型,而宏常量没有数据类型
1.5 函数三种传递参数的方式
指针 引用 值传递
2 内存管理
内存分配的三种方式
静态存储区域分配 : 全局变量,static 变量
在栈上创建: 函数内局部变量的存储单元都可以在栈上创建,函
数执行结束时这些存储单元自动被释放
堆上分配,亦称动态内存分配 malloc/free new/delete 自已释放
内存常见错误
内存分配未成功,却使用了它,应该用 if(p != null)
内存分配虽然成功,但是尚未初始化就引用它
内存分配成功并且已经初始化,但操作越过了内存的边界 //类似数组
忘记了释放内存,造成内存泄露 //malloc/free new/delete 必须成对出现
释放了内存却继续使用它 //1 return 语句 2 没有将指针设置为 NULL
void getMemory(char *p)
{
p = (char *) malloc(100);
}
void test()
{
char *str = NULL;
getMemory(str);
strcpy(str, "hello");
}
char *getMemory()
{
char *p = (char *) malloc(100);
return p;
}
野指针
“野指针”不是 NULL 指针,是指向“垃圾”内存的指针
1.指针变量没有被初始化
2.指针 p 被 free 或者 delete 之后,没有置为 NULL,让人误以为 p 是个合法的指针
3 c++支持函数重载 重写
4.
A(void); // 缺省的无参数构造函数
A(const A &a); // 缺省的拷贝构造函数
~A(void); // 缺省的析构函数
A & operate =(const A &a);// 缺省的赋值函数
构造函数与析构函数的调用顺序
拷贝构造函数与赋值函数 如果用默认的, 当类中有指针变量的时候,会出现问题
可以把这两个函数设置成private
类的继承与组合
继承 是is a 的关系
组合 是has a 的关系
建议
使用 const 提高函数的健壮性
用 const 修饰函数的参数
用 const 修饰函数的返回值
分享到:
相关推荐
资源C++学习资料C++学习资料C++学习资料
C++学习资料C++学习资料C++学习资料C++学习资料C++学习资料C++学习资料C++学习资料
C++ 学习资料C++ 学习资料C++ 学习资料C++ 学习资料C++ 学习资料C++ 学习资料
C++的知识点,以及一些C++的例子,共C++学习用
C++基本语法,值得一看,朋友们!!C++基本语法,值得一看,朋友们!!C++基本语法,值得一看,朋友们!!
c++学习的经验 交流c++学习经验 首先要说明的是,C和C++是两件截然不同的东西,学习C++可以完全没有C的基础,或者说可以完全不用先学C;但是,这样你是永远也不可能成为真正的C++大师的;你最多只能成为一个C++的...
C++学习 实验题目
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记
c++学习笔记/知识要点精华版
如何学习c++如何学习c++如何学习c++如何学习c++如何学习c++
想学c++的朋友可以看看,学习基础知识.《C++ Primer 中文版(第5版)》所有示例均全部采用 C++11 标准改写,这在经典升级版中极其罕见——充分体现了 C++ 语言的重大进展及其全面实践。书中丰富的教学辅助内容、醒目的...
C++学习版
C++学习(PPT教材)C++学习(PPT教材)C++学习(PPT教材)C++学习(PPT教材)C++学习(PPT教材)C++学习(PPT教材)C++学习(PPT教材)
C++学习是Android客户端目前最全面的免费离线C++学习书籍,提高C++二级考试成绩、增强C++自学能力,内容包括: 1、C++数据类型、控制语句、循环、数组等基础 2、C++逻辑算法练习题 3、C++函数、指针 4、C++内存...
c++学习材料资源丰富c++学习材料资源丰富c++学习材料资源丰富c++学习材料资源丰富c++学习材料资源丰富c++学习材料资源丰富c++学习材料资源丰富c++学习材料资源丰富c++学习材料资源丰富
C++学习教程C++学习教程C++学习教程C++学习教程C++学习教程
c++学习笔记.pdf
学习C++必备的代码。。一定要下载哦。!
C++学习心得和方向.rarC++学习心得和方向.rarC++学习心得和方向.rar
C++学习资料大全 C++学习资料大全 C++学习资料大全