C语言和C++区别开始讲
1.命名空间
1.1命名空间的定义
namespace 标识符{ }
namespace zhang{ int a =1;}
1.2命名空间的成员访问
作用域分辨符::
cout<<my::a<<endl;
1.3省略限定符
using namespace zhang;
联想到标准命名空间
using namespace std;
没有这个需要加std::cout,std::cin,std::endl;
1.4命名空间的嵌套
namespace my
{
int a=1;
namespace danny
{
int b = 2;
}
}
cout<<my::danny::b<<ebdl;
#include<iostream>
#include<cstdio>
//命名空间的定义
//namespace 空间名{变量或者函数}
using namespace std;
namespace moming
{
int a=1;
int b=2;
int c=3;
}
//运算符:作用域运算符::告诉别人这个东西属于那个里面
//命名空间的嵌套
namespace zhang
{
int e = 11;
namespace zhangyun
{
int f = 13;
}
}
int main()
{
cout << moming::a << endl;
cout << moming::b << endl;
cout << moming::c << endl;
using namespace moming;//实用using 去掉作用域限定
int a = 10;//c语言中就近原则
cout << a << endl;
cout << b << endl;
cout << c << endl;
//访客嵌套访问原则
namespace zhangyundu = zhang::zhangyun;
cout << zhangyundu::f << endl;
system("pause");
return 0;
}
2.输入和输出
输入:cin+>>
int a=1;
cin>>a;
输出:cout+<<
cout<<b;
#include<iostream>
#include<cstdio>
using namespace std; // 标准命名空间
int main()
{
//输出
int INumber = 1;
//输出变量+连续输出
cout << "INumber=" << INumber << "\n";
//输出字符串
char str[20] = "I LOVE YOU";
cout << str;
cout << "请输入一个数据:" << "\n";
//输入数字
cin >> INumber;
cout << INumber << "\n";
//输入字符串
cout << "请输入字符串:" << "\n";
cin >> str;//不需要取地址
cout << "str=" << str << "\n";
//C++换行 endl等效"\n"拥有清空缓冲区效果
cout << endl;
printf("FirstBlood");
system("pause");
return 0;
}
3.bool:布尔类型
#include<iostream>
#include<cstdio>
//命名空间的定义
//namespace 空间名{变量或者函数}
using namespace std;
bool Isemptylist()
{
return 0;
}
int main()
{
bool bNumber = false;//false和true不是宏,是关键字;
//int false = 1;错误
cout << "bool=" << bNumber << endl;
cout << "sizeof(bool)=" << sizeof(bNumber) << endl;
cout << "bool=" << boolalpha << bNumber;//输出true或者false
//注意点:非零表示真
cout << endl;
bNumber = -1;
cout << "bool=" << bNumber << endl;
system("pause");
return 0;
}
3.1 值:0和1 或者true和false
3.2 代表是真和假
3.3内存占用1个字节
判断函数的返回类型值
4.函数
4.1重载:函数名相同的函数可以存在多个
4.1.1 数目不一致
4.1.2 参数类型不一致
4.1.3 顺序不一致
//顺序不一致
int Max(int a, int b)
{
return a > b ? a : b;
}
//类型不一致
double Max(double a, double b)
{
return a > b ? a : b;
}
//数目不一致
int Max(int a, int b,int c)
{
return a > b ? a : b > c ? a > b ? a : b : c;
}
4.2缺省(重载的一种集合体)
缺省:给函数赋值
4.2.1缺省的写法
int Return(int a = 1)
{
return a;
}
4.2.2缺省调用
int main()
{
//好处在于调用多种形式
int iUmber = 10;
cout << Return(iUmber) << endl;//输出传入的值1
cout << Return() << endl;//输出默认值1
system("pause");
return 0;
}
4.2.3缺省的要求(必须从右往左缺省)
#include<iostream>
#include<cstdio>
using namespace std; // 标准命名空间
//缺省就是给形参赋值
int Return(int a = 1)
{
return a;
}
//缺省的要求,从you往zuo
int Return2(int a ,int c=1)
{
return a+c;
}
//缺省和重载的注意,不要产生二义性
int function(int a)
{
return a;
}
int function(int a,int b=1)
{
return a+b;
}
int main()
{
//好处在于调用多种形式
int iUmber = 10;
cout << Return(iUmber) << endl;//输出传入的值1
cout << Return() << endl;//输出默认值1
cout << function(1,2) << endl;
system("pause");
return 0;
}
5.结构体
5.1允许成员函数的存在
5.2使用结构体类型可以省略struct
#include<iostream>
#include<cstdio>
using namespace std; // 标准命名空间
//
struct List
{
int data;
struct List* next;
List CreateList(){
}
List CreateNode(){
}
void InsertNode(){
}
};
int main()
{
List mylist;
mylist.InsertNode();
system("pause");
return 0;
}
5.内存分配
c语言malloc calloc realloc free
c++ new delete
#include<iostream>
#include<cstdio>
using namespace std; // 标准命名空间
//
struct student
{
int data;
};
int main()
{
//申请内存
int *p = new int;//new 一个int大小的空间
int *pAray = new int[4];//new一个4个长度的数组
int *pp = new int(4);//new 一个int大小的空间
int *ppAray = new int[4]{1,2,3,4};//new一个4个长度的数组
cout << ppAray[1] << endl;
cout << *pp<< endl;
//释放
delete p; //普通释放
delete[] pAray;//数组释放
system("pause");
return 0;
}
6.起别名
#include<iostream>
#include<cstdio>
using namespace std; // 标准命名空间
//
void Swap(int &a, int &b){
int temp = a;
a = b;
b = temp;
}
int d = 1;
int Return()
{
return d;
}
int& Return1()
{
return d;
}
int main()
{
int iNumber = 2;
//起别名
int &a = iNumber;
a = 3;
cout << iNumber << endl;
int &p = iNumber;
//防止拷贝本的产生。。一般用于形参
int b = 1;
int c = 2;
Swap(b, c);
cout << "b=" << b << endl;
cout << "c=" << c << endl;
//增加左值的功能
//左值;运算符左边的值---一般用在函数的返回值、
//函数返回引用相当于返回变量
cout << Return() << endl;
Return1()++;//直接作用变量上的
cout << d<< endl;
system("pause");
return 0;
}