课程目标
- 掌握c++基础知识
- 理解面向对象的编程理念
- 掌握一定的调试技术
- 掌握常用的c++类库
- 具有一定的项目实践能力
c++的优势//数据与算法的耦合
- C++被看成一种"更好的C",或者是"C的超集"
- C语言中很多麻烦的地方,含糊不清的地方在设计C++时得到了解决
- C++包含所有C的特性
- 支持OOP面向对象编程
面向对象程序设计概念
- 出发点:
- 更直接的描述客观世界中存在的事物(对象)以及它们之间的关系.
- 特点
- 是高级语言
- 将客观事物看作具有属性和行为的对象
- 通过抽象找出同一类对象的共同属性和行为,形成类
- 通过类的继承与多态实现代码重用
- 优点
- 使程序能够比较直接地反应问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发
最简单的程序(hello world)
#include<iostream.h>
int main(int argv,char **argv)
{
std::cout<<"Hello! World"<<std::endl;
return 0;
}
//std::是命名空间
#include<stdio.h>
int main()
{
printf("Hello world\n");
}
//将int改为void则会出错
-
#include<stdio.h>
#include<iostream>
int main()
{
// printf("Hello world\n");
std::cout<<"Hello world\n";
}
//结果为:Hello world
-
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int a=69;
cout<<"Hello world"<<a<<endl;
}
//结果为Hello world69;
-
#include<stdio.h>
#include<iostream>
int main()
{
int a=69;
std::cout<<"Hello world"<<a<<std::endl;
}
//结果为:Hello world69;
-
#include<stdio.h>
#include<iostream>
char a=71;
int main()
{
printf("Hello world%d\n",a);//结果为Hello world71
cout<<"Hello world"<<(int)a<<endl;//原本结果为Hello worldG.在前面加(int)是强转型
}
-
#include<stdio.h>
#include<iostream>
char a[20]="jiangxiubi";
int main()
{
printf("Hello world%p\n",a);//a的地址
cout<<"Hello world"<<a<<endl;//输出为Hello worldjiangxiubi
-
#include<stdio.h>
#include<iostream>
int a;
int main()
{
cin>>a;
cout<<"a = "<<a<<endl;
}
//当输入11时,则打印11;相当于C语言中的scanf
//若输入的数据不符合a的类型,则会出错.
-
#include<stdio.h>
#include<iostream>
char a;
char b;
int main()
{
cin>>a>>b;
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
}
//当输入12时,结果为a = 1;
//b = 2;
-
#include<stdio.h>
#include<iostream>
int a;
int b;
int main()
{
cin>>a>>b;
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
}
//当输入 1 2时,中间要有空格,则输出a = 1;
//b = 2;
与C的输入输出的比较
- 比printf scanf功能强大,形式简单
- 可以自动识别基本数据类型
命名空间
namespace Graphics
{
const int nLibrary=1.0;
};
using Graphics;
namespace System
{
const int nLibrary=2.0;
};
using System;
标准命名空间
#include<stdio.h>
#include<iostream>
using namespace std;//标准命名空间
namespace A
{
int a=69;
};
namespace B
{
int a=70;
};
int main()
{
printf("Hello world%d\n",A::a);
cout<<"Hello world"<<B::a<<endl;
}
//结果为:Hello world69与Hello world70;
#include<stdio.h>
#include<iostream>
using namespace std;//标准命名空间
namespace A
{
int a=69;
};
namespace B
{
int a=70;
};
int a=71;//全局无命名空间
int main()
{
printf("Hello world%d\n",A::a);
cout<<"Hello world"<<B::a<<endl;//B::a输出流的对象
cout<<"Hello world"<<::a<<endl;
}
//结果为::Hello world69与Hello world70与Hello world71;
C++Hello World程序解释
- 预处理,头文件
- 编译
- 联接
C++流
标准流的设备名
C++名字 设备 c中的名字 默认的含义
cin 键盘 stdin 标准输入
cout 屏幕 stdout 标准输出
cerr 屏幕 stderr 标准错误
clog 打印机stdprn 打印机
cout<<"Welcome to";
cout<<"C++!\n";
也可用:cout<<"Welcome to";
cout<<"c++";
cout<<"endl";
//两者结果相同
cout<<"47plus53is";
cout<<"(47+53)";
cout<<endl;
也可用:cout<<"47plus53is"<<"(47+53)"<<endl;
总结
- C有很多优点,但也有缺点C缺点:安全与易用还有局限
- C++用cout<<cin>>作输入输出
- 命名空间是为了避免两个程序员使用相同的名字造成冲突