C++面向对象程序设计之C++的初步知识(2)

int main()
{
    stud1.setdata();                    //调用对象stud1的setdata函数
    stud2.setdata();                    //调用对象stud2的setdata函数
    stud1.dispaly();                    //调用对象stud1的dispaly函数
    stud2.dispaly();                    //调用对象stud2的dispaly函数
    return 0;
}

包含类的C++程序

程序分析:

可以类比python中的类,声明类-->定义类,定义类的变量-->用对象调用类的方法,调用对象的函数-->调用对象的函数

掌握定义类和类的方法,定义类的变量即对象,学会调用对象的方法。

class是声明“类”类型时必须使用的关键字,一个类是由一批数据以及对其操作的函数组成的。

凡是被指定为公用的数据或函数,既可以被本类的成员函数调用,也可以被类外的语句所调用。被指定为私有的成员(函数或数据)只能被本类中的成员函数所调用,而不能被类以外调用(以后介绍的友元“类成员”以外)。

Student stud1,stud2;是一个定义语句,它的作用是将stud1和stud2定义为Student类型的变量。

对象是占实际存储空间的,而类型并不占实际存储空间。

用了带后缀的“.h”的头文件时不必用“using namespace std;”做声明。

1.3 C++对C的扩充

1.3.1 C++的输入输出

C++预定义的标准流对象 流名   含义   隐含设备  
cin   标准输入   键盘  
cout   标准输出   屏幕  
ceer   标准出错输出   屏幕  
clog   ceer的缓冲形式   屏幕  

如果要指定输出所占列数,可以用控制符setw进行设置,如setw(5)的作用是为其后面一个输出项预留5列的空间,如果输出数据项的长度不足5列,则数据向右对齐,若超过5列则按实际长度输出。如下所示:

#include<iomanip>
#include<iostream>
using namespace std;
int main()
{
float a=3.45;
int b=5;
char c='A';
//cout << "a="<<a<<","<< "b="<<b<<","<< "c="<<c<<endl;
//cout << "a="<<setw(6)<<a<<","<< "b="<<setw(6)<<b<<","<< "c="<<setw(6)<<c<<endl;
cout << "a="<<a<<endl;
cout << "b="<<b<<endl;
cout << "c="<<c<<endl;
cout << "a="<<setw(6)<<a<<endl;
cout << "b="<<setw(6)<<b<<endl;
cout << "c="<<setw(6)<<c<<endl;
system("pause");
return 0;
}

运行结果:

C++面向对象程序设计之C++的初步知识

代码分析:

若使用setw,应当在程序的开头包含头文件iomanip(或iomanip.h)。

如果执行窗口总是执行下就消失,可以在开头加上using namespace std;在return之前加上system("pause");就可解决。

1.3.2 用const定义常变量

C语言中常用#define指令来定义符号常量,如#define PI 3.14159。

实际上,只是在预编译时进行字符置换,把程序中出现的字符串PI全部置换成3.14159.在预编译之后,程序中不再有PI这个标识符。PI不是变量,没有类型,不占用存储单元,而且容易出错。如下:

#include<iostream>
using namespace std;
int main()
{
int a=1;int b =2;
#define PI 3.14159
#define R a+b
cout <<PI*R*R<<endl;

system("pause");
return 0;
}

输出结果为 7.14159,即输出的并不是3.14159*(a+b)*(a+b),而是3.14159*a+b*a+b。程序因此常常出错。

C++提供了用const定义常变量的方法,如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/704a395fc66352bfe16e015f30ba1748.html