第1章C++的初步知识一、面向对象的基本概念
❖对象/实例(object/instance)
❖类(class)
❖封装(encapsulation)
❖继承(inheritance)
❖多态(polymorphism)
❖重载(overload)
❖消息(message)
二、C++的开发运行环境
1、Visual C++
2、GCC:是一个用于Linu*系统下编程的编译器
3、WinTC
4、Dev-C++
三、最简单的C++程序
1、例题1.1
*include<iostream>
using namespace std;
int main()
{
cout<<"This is a C++ program.";
return 0;
}
程序功能:输出一行字符:This is a C++ program.
程序注释:
(1)预处理命令*include<iostream>
iostream输入、输出流
(2)using namespace std;
使用命名空间std。
第一行和第二行是每个C++都有的语句。
(3)C++的主函数名与C一样,都是main。
(4)C++的输出使用cout<<
cout是输出流对象,<<;是插入运算符。
若要输出一个字符串,将要输出的字符串写在双引号中;
若要输出一个整数,<<1;
若要输出一个变量,<<a;
例如:
*include<iostream>
using namespace std;
int main()
{
int a=2;
cout<<"This is a C++ program."<<1<<a;
return 0;
}
2、例题1.2
*include<iostream>
using namespace std;
int main()
{
int a,b,sum;
cin>>a>>b;
sum=a+b;
cout<<"a+b="<<sum<<endl;
return 0;
}
程序功能:求a和b两个数之和。
程序注释:
(1)输入语句:cin>>a>>b;
cin:输入流对象
>>:提取运算符
C++中的输入、输出比C更简洁,无需格式控制。
c程序设计谭浩强pdf百度网盘输入时用空格或者回车分隔都可以。
若想输入一个整数,一个实数,一个字符怎么写?
*include<iostream>
using namespace std;
int main()
{
int a;
float b;
char c;
cin>>a>>b>>c;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"c="<<c<<endl;
return 0;
}
或者
*include<iostream>
using namespace std;
int main()
{
int a;
float b;
char c;
cin>>a>>b>>c;
cout<<"a="<<a<<endl<<"b="<<b<<endl<<"c="<<c<<endl;
return 0;
}
(2)//C++的注释符,若注释容较少,一行即可,那么可以使用//,若注释容较多,需要多行,那么使用/* */。
(3)endl是回车换行符,与’\n’的作用一样。
3、例题1.3
*include<iostream>
using namespace std;
int ma*(int *, int y)
{
int z;
if(*>y) z=*;
else z=y;
return(z);
}
int main()
{
int a,b,m;
cin>>a>>b;
m=ma*(a,b);
cout<<"ma*="<<m<<'\n';
return 0;
}
程序功能:给两个数*和y,求两数中的大者。
程序解释:
(1)与C完全一致。涉及到子函数和主函数。
4、例题1.4
*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)class Student
类的定义
class是类定义的关键字。
Student是我们自定义的类名。
(2)private和public
private后定义的容(包括数据和函数)只允许类的成员函数使用,类外不能使用。
例如:
int main()
{
cout<<stud1.num;
stud1.setdata();
stud2.setdata();
stud1.display();
stud2.display();
return 0;
}
错误提示:error c2248:’num’: cannot access private member declared in class ‘Student’
(3)类中包含了数据和函数
与结构体的最大区别。
(4)Student stud1,stud2;
定义两个学生对象
类是抽象的,而对象是具体的。
(5)stud1.setdata();
stud2.setdata();
stud1.display();
stud2.display();
调用学生类的成员函数,对两个学生对象赋值并显示。
(6)思考:如何定义新学生对象stud3,学号1003,分数80。
四、C++对C的扩充
1、函数的重载
(1)重载是什么意思?
(2)为什么C++要增加重载?
(3)重载分为
函数重载:在同一作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不相同。
运算符重载:第十章介绍
(4)实例:求两个/三个数中最大的数(数值类型可以为整型、实型、长整型)。
用C实现必须定义6个子函数。
✹int ma*1(int a, int b, int c);
✹float ma*2(float a, float b, float c);
✹long ma*3(long a, long b, long c);
✹int ma*4(int a, int b);
✹float ma*5(float a, float b);
✹long ma*6(long a, long b);
int ma*1(int a, int b, int c)
{ i f(b>a) a=b;
if(c>a) a=c;
return a;
}
int ma*4(int a, int b)
{ if(a>b) return a;
else return b;
}
而C++通过函数重载,可以使用同一个函数名,实现上述六个子函数的功能。
✹int ma*(int a, int b, int c);
✹float ma*(float a, float b, float c);
✹long ma*(long a, long b, long c);
✹int ma*(int a, int b);
✹float ma*(float a, float b);
✹long ma*(long a, long b);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。