《C++面向对象程序设计》学习之前言
来源:互联网 发布:单片机和软件编程方式 编辑:程序博客网 时间:2024/05/18 00:36
C++对C的“增强”,表现在两个方面:
(1)在原来面向过程的机制基础上,对C语言的功能做了不少补充。
(2)增加了面向对象的机制。
最简单的C++程序:
#include<iostream>
using namespace std;
int main(){
cout<<"this is a C++ program .\n";
return 0;
}
比较C与C++中程序的不同:
(1)标准C++规定main函数必须声明为int型。程序运行正常为0,不正常返回-1.
(2)注释可以用/*****/,也可以用//....
(3)使用输出流对象cout和"<<"插入运算符,进行输出;使用输入流对象cin和“提取运算符>>”进行输入。
(4)需要包括头文件"iostream"进行cout输出。系统提供的头文件不带.h,自己编制的头文件可以有.h。
(5)使用命名空间 std。
例1.2 求a和b两个数之和
#include<iostream>
using namespace std;
int main(){
int a,b,sum;
cin>>a>>b;
sum=a+b;
cout<<"a+b="<<sum<<endl;
return 0;
}
例 1.3 输入两个数x和y,求两数中的大者。
#include<iostream>
using namespace std;
int main(){
int max(int x,int y);
int a,b,c;
cin>>a>>b;
c=max(a,b);
cout<<"max="<<c<<endl;
return 0;
}
int max(int x,int y){
int z;
if(x>y){
z=x;
}
else z=y;
return z;
}
例 1.4 包含类的C++程序
#include<iostream>
using namespace std;
class Student
{
private :
int num;
int score;
public :
void setdata(){
cin>>num;
cin>>score;
}
void display(){
cout<<"num="<<num<<endl;
cout<<"score="<<score<<endl;
};
};
Student stud1,stud2;
int main(){
stud1.setdata();
stud2.setdata();
stud1.display();
stud2.display();
return 0;
}
注释:
1.C++的类中可以包含两种成员,即数据和函数,分别称为数据成员和成员函数。
2.一个类是由一批数据以及对其操作的函数组成的。
3.类可以体现数据的封装性和信息隐蔽。
4.凡是被指定为公用的数据或函数,既可以被本类中的成员函数调用,也可以被类外的语句所调用。被指定为私有的数据或函数
只能被本类中的成员函数所调用,而不能被类以外调用。从而实现信息隐蔽。
5. "."是一个“成员运算符”
例1.5 cin与cout
#include<iostream>
using namespace std;
int main(){
cout<<"please enter your name and age:"<<endl;
char name[10];
int age;
cin>>name;
cin>>age;
cout<<"your name is "<<name<<endl;
cout<<"your age is "<<age <<endl;
return 0;
}
注释:c++为流输入输出提供了格式控制,如:dec(十进制),hex(十六进制),oct(八进制)
用const定义常变量:
C++提供了用const定义常变量的方法,定义后的变量具有变量的属性,有数据类型,占用存储单元,有地址,可以用指针指向它,const
可以与指针结合使用,有指向常变量的指针、常指针、指向常变量的常指针等。
函数原型声明:
在C++中,如果函数调用的位置在函数定义之前,则要求函数调用之前必须对所调用的函数做函数原型声明。
函数类型 函数名(参数表);在编译时只检查函数类型,而不检查参数名。
函数的重载:C++允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不相同,这些同名的函数用来实现不同
的功能。
运算符的重载:允许一个运算符用于不同的场合,有不同的含义。
例1.6 求3个数中最大的数(分别考虑整数、实数、长整数的情况)
#include<iostream>
using namespace std;
int max(int a,int b ,int c){
if(b>a) a=b;
if(c>a) a=c;
return a;
}
float max(float a,float b,float c){
if(b>a) a=b;
if(c>a) a=c;
return a;
}
long max(long a ,long b ,long c){
if(b>a)a=b;
if(c>a) a=c;
return a;
}
int main(){
int a,b,c;
float d,e,f;
long g,h,i;
cin>>a>>b>>c;
cin>>d>>e>>f;
cin>>g>>h>>i;
int m;
m=max(a,b,c);
cout<<"max_i="<<m<<endl;
float n;
n=max(d,e,f);
cout<<"max_f="<<n<<endl;
long int p;
p=max(g,h,i);
cout<<"max_i="<<i<<endl;
return 0;
}
例 1.7 用一个函数求2个整数或3个整数中的最大者。
#include<iostream>
using namespace std;
int max(int a,int b,int c){
if(b>a) a=b;
if(c>a) a=c;
return a;
}
int max(int a,int b){
if(b>a) return b;
else return a;
}
int main(){
int a=7,b=-4,c=0;
cout<<max(a,b,c)<<endl;
cout<<max(a,b)<<endl;
return 0;
}
函数模板:
所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。
例1.8 将例1.6中的程序改为通过函数模板来实现。
#include<iostream>
using namespace std;
template <typename T>;
T max(T a,T b,T c){
if( b>a) a=b;
if(c>a) a=c;
return a;
}
int main(){
int i1=8,i2=5,i3=6,i;
double d1=56.9,d2=90.765,d3=43.1,d;
long g1=67898,g2=-456,g3=78123,g;
i=max(i1,i2,i3);
d=max(d1,d2,d3);
g=max(g1,g2,g3);
cout<<"i_max="<<i<<endl;
cout<<"f_max="<<f<<endl;
cout<<"g_max="<<g<<endl;
return 0;
}
注释:
通用函数定义 template<typename T >或 template<class T>
函数模板只适用于函数的参数个数相同而类型不同,且函数体相同的情况,如果参数的个数不同,则不能用函数模板。
变量的引用:
一个变量的引用就是给变量起个名字,对变量的引用的所有操作实际上都是对其所代表的变量的操作。“&”是引用
声明符。
“::“作用域运算符
- 《C++面向对象程序设计》学习之前言
- JavaScript面向对象程序设计(1): 前言
- JavaScript面向对象程序设计(1): 前言
- 《面向对象程序设计-C++》学习笔记1
- 《面向对象程序设计-C++》学习笔记2
- C 面向对象程序设计
- C++(面向对象程序设计)
- 面向对象程序设计学习
- 《C++primer(第五版)》学习之路-第十五章:面向对象程序设计
- java面向对象前言之final关键字
- 面向对象程序设计--C++/Java
- 面向对象程序设计--C++/Java
- Objective-C:面向对象程序设计
- C++primer学习:面向对象程序设计(2):抽象基类
- 重新学习《C++Primer5》第15章-面向对象程序设计
- C++primer学习笔记----面向对象程序设计(1)
- C++primer学习笔记----面向对象程序设计(2)
- javaSE学习笔记之面向对象程序设计(一)
- Python:程序最小化到托盘功能实现
- 清明。。只是扫墓。。
- SEO市场现状浅析
- 使用素数解决表示多个标签组合查询
- SQL Server 2008中增强的汇总技巧
- 《C++面向对象程序设计》学习之前言
- cocos2d-x 学习 之 环境的部署
- 如何提高在搜索引擎中的排名-百度排名-竞价排名-自然排名
- gvim+ctags in windows
- Visual Studio找不到源代码管理插件
- C:Win32 学习日志——(001)
- Java对象池
- tomcat6修改jvm参数
- ExtJs学习笔记(XTemplate的使用)