C++第一个程序:
头文件:标准库的头文件不带.h。如果想用C语言的函数,可以用C语言的标准库头文件,推荐的写法是去掉后面的“.h”,前面加上c,比如stdio.h==>cstdio, math.h=cmath。
名字空间:标准库中的所有名字都被放在了一个名叫std的名字空间中,使用时要加std::前缀。 偷懒的办法是用一句using namespace std::来表示自动在标准库的名字前加std::。
输入输出:cin>>数据,cout<<数据。可以连成长串。
扩展名:.cpp .C .cc .cxx
编译连接:g++,用法跟gcc一样。或者用gcc-lstdc++。
注释: /* */ , //
名字空间用法:解决名字冲突问题
定义:
namespace 名字{
变量声明、变量定义、函数声明、函数定义...
}
多个同名的名字空间会合并在一起。
如果需要也可以在名字空间里嵌套名字空间
namespace quange{
namespace c{
char x;
}
namespace uc{
int y;
}
double z;
}
使用 :
名字空间::空间内部名字 quange::c::x
quange::z
统一指定名字空间
using namespace quange;
c::x
z
using namespace quange;
using namespace uc; //using namespace quange::uc;
y
匿名名字空间(全局名字空间)
全局定义的int var;void func();
可以直接使用名字,也可以加::
var=123;
::var=123;
输入输出:在写程序时不应再为类型费心了。
注意是写程序时不用费心。运行时还是要正确输入,如果输入无效不会被取走而且读取失败。
结构、联合、枚举
1.定义完毕之后得到的是自定义类型。
struct Student{...};
struct Student furong;
在C++中使用后结构、联合、枚举类型来定义变量时,不用再重复struct、union、enum关键字。
Student furong;
结构定义时,成员不单可以是数据还可以是函数,甚至可以是类型。
2.支持匿名联合。
union XXX{
int a;
char b[4];
};
(c中)union XXX v;
(c++中)XXX v;
v.a ,v.b
union{
int x;
char y[4];
};
x=0x61626364;
y[0]=='d';
3.c中枚举类型是常量? c++中枚举类型是单独的类型
枚举类型不在等同于整数类型,如果需要转化可以用强制类型转换。
· 4.布尔类型:bool
bool在C00支持<stdbool.h> 表示是否,只有true/false两个值,可以自动转换成整数1/0。其他类型数据当成布尔类型是非零即真,零则假。
5.字符字面量:
‘*’; 在C语言中没有真正的字符字面量,用的实际都是(整数)int。(视频举例?)