从c到c++
c++包含了整个c,c是建立c++的基础。c++包括c的全部特征、属性和优点,同时添加了面向对象编程(oop)的完全支持。
c++语言包括过程性语言部分和类部分。过程性语言部分与c并无本质的差别,类部分是c中所没有的,它是面向对象程序设计的主体。
面向对象程序设计的本质是把数据和处理数据的过程当成一个整体——对象。
面向对象程序设计的实现需要封装和数据隐藏技术,需要**继承和多态性##技术。
1.C++基本的输入输出流
C&C++输入输出对比
cout是标准输出流对象,<< 是输出操作符;
cin是标准输入流对象,>>是输入操作符;
endl是换行操作符;
他们都属于C++标准库,所以都在std的名字空间里面
2.命名空间(namespac )
以关键字namespace开头,给它起一个名字,用花括号把文件的一部分括起来
namespace You
{
int a=1;
}
namespace My
{
int a=2;
}
int main()
{
printf("%d\n",My::a);
printf("%d\n",You::a);
return 0;
}
::是作用域解析符
那命名空间是用来干嘛的呢?
答:名字空间域可以解决全局命名冲突的问题。
上面的代码中有两个变量a,但这两个a却是不同的,因为他们作用的域不同。
注意:命名空间作用域是不能以分号结尾。
3.重载(C++为什么支持重载?)
什么是重载?
函数名相同,参数列表不同,返回值可同可不同(在同一作用域类,一组函数内)
4.C++缺省参数
什么叫参数缺省?
举个例子
int Add1(int a=10,int b=20)//全缺省参数
{
return a+b;
}
int Add2(int a,int b=20)//半缺省参数
(但只能缺省前面的,不能缺省后面的)
{
return a+b;
}
int main()
{
cout<<Add1(1,2)<<endl;
//3
cout<<Add1( )<<endl;
//30
cout<<Add1(5)< a+b;
//25
return 0;
}
5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)
引用就是个别名,当建立引用时,程序用另一个变量或对象的名字初始化它。从那时起,引用作为目标的别名而使用,对引用的改动实际就是对目标的改动。
定义的格式为:
类型 &引用变量名 = 已定义过的变量名;
例如:
int a;
int& b=a;
b就是a的别名
引用的特点:
1. 一个变量可取多个别名
2. 引用在声明时必须被初始化,否则会产生编译错误;
3. 引用只能在初始化的时候引用一次,不能改变为再引用其他的变量。
4.引用不是值,不占存储空间,所以引用只有声明,没有定义;