标准库的头文件用尖括号<>括起来,非标准库的头文件用双引号括起来。
定义变量时,应该给变量赋初始值,除非确定将变量用于其他意图之前会覆盖这个初值。如果不能保证读取变量之前重置变量,就应该初始话变量。
关于程序缩排和格式
良好的代码风格有助于程序的可读性,这时候IDE提供了我们一些方便,比如eclipse,自动帮我们处理了很多编码风格的东西,所以使用IDE来编码还是不错的。
关于for循环:
for(int val=1; val <= 10 ; val++)
for循环结束后val变量不可访问,这是新的C++标准所定义的,然而不是所有的编译器都有这一要求。不过最好还是遵循标准。
实际上,许多人用整型进行计数。例如:程序经常计算像vector或数组这种数据结构的元素个数。在标准库中定义了一组类型用于统计对象的大小,因此,当计数这些元素时使用标准库定义的类型总是正确的。其他情况下,使用
unsigned类型比较明智,可以避免越界导致结果为负数的可能性。
定义长整型时,应该使用大写字母L。小写字母很容易和数值1混淆。不提倡使用小写字母l,
在字符字面值前加L就能够得到wchar_t类型的宽字符字面值。如:L'a'
C++语言中定义了如下转义字符:
换行符 \n
水平制表符 \t
纵向制表符 \v
退格符 \b
回车符 \r
进纸符 \f
报警符 \a
反斜线 \\
疑问号 \?
单引号 \'
双引号 \"
我们可以将任何字符表示为以下形式的通用转义字符:
\ooo
这里的ooo表示三个八进制数字,这三个数字表示字符的数字值。下面的例子是用ASCII码字符集表示字面值常量:
\7 响铃符 \13 换行符 \40 空格符
\0 空字符 \062 '2' \115 'M'
也可以用十六进制转义字符来定义字符:
\xddd , 其中ddd表示一个或多个十六进制数字。
初始化不是赋值,初始化指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值代替。
关于补码,查。负数求模。查。
建议每个内置类型的对象都要初始化。虽然这样做并不总是必须的,但是会更加容易和安全,除非你确定忽略初始化式不会带来风险。
在C++语言中,变量必须且仅能定义一次,而且在使用变量之前必须定义或声明变量(使用extern)
通常把一个对象定义在它首次使用的地方是一个很好的方法。
非const变量默认为extern,要使const变量能够在其他的文件中访问,必须显示的指定它为extern.
类定义以关键字class开始,其后是该类的名字标识符。类体位于花括号里。花括号后面必须跟一个分号。不要忘了加 ;
class Foo
{
} //未加 ;
int main()
{
return 0;
}
gcc编译器提示信息:
../chap2.cc:13: error: new types may not be defined in a return type
../chap2.cc:13: note: (perhaps a semicolon is missing after the definition of ‘Foo’)
../chap2.cc:13: error: two or more data types in declaration of ‘main’
make: *** [chap2.o] Error 1
因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。
三个例外:
可以定义类,值在编译时就已知道的const对象和
inline函数。
const 于#define 的区别
const对象定义在头文件中 ? P59
头文件应该含有保护符,即使这些头文件不会被其他头文件包含。编写头文件保护符并不困难,而且如果头文件被包含多次,它可以避免难以理解的编译错误。
#ifndef SALESITEM_H
#define SALESITEM_H
// Definition of Sales_item class and related functions goes here
#endif