欢迎来到天天文库
浏览记录
ID:44194700
大小:310.00 KB
页数:94页
时间:2019-10-19
《C++面向对象程序设计教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C++面向对象程序设计教程第2章类和对象2.1由结构到类的发展由结构到类的发展在C语言中,结构由若干成员组成。在C++中,结构中可以有函数。类是从结构演变而来的,C++最初称为“带类的C”。从结构到类的演变是从让结构含有函数开始的。2.1.1带函数的结构C++允许程序员在结构中定义函数,这样的函数称为成员函数。原来的结构成员称为数据成员,可使用如下的形式描述结构:struct结构名{数据成员成员函数};可以像结构变量那样使用成员函数:结构变量.成员函数(实参)例2.1在结构中使用成员函数的示例。structPoint{//数据成员doublex;//x坐标doubley;//
2、y坐标//成员函数voidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<3、向对象程序设计的封装性包含了隐藏数据成员,可使数据成员具有私有(private)访问权限实现,这时将不能通过变量直接访问数据成员。例2.2使结构具有封装性的示例。structPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数voidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<4、标v.Show();//显示v的坐标(6,18)//cout<<"("<5、函数名与结构名相同,无返回值类型对于上面的结构Point,可声明如下的构造函数:Point(doublea=0,doubleb=0);例2.3使用构造函数初始化对象的示例。structPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}voidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<6、n()//主函数main(){Pointv(6,18);//定义对象,构造函数的参数为a=6,b=18v.Show();//显示v的坐标(6,18)system("PAUSE");//调用库函数system(),输出系统提示信息return0;//返回值0,返回操作系统}在例2.3中,用关键字class替换struct,这时就得到一个标准的类。例2.4标准的类示例。classPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}v7、oidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<
3、向对象程序设计的封装性包含了隐藏数据成员,可使数据成员具有私有(private)访问权限实现,这时将不能通过变量直接访问数据成员。例2.2使结构具有封装性的示例。structPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数voidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<4、标v.Show();//显示v的坐标(6,18)//cout<<"("<5、函数名与结构名相同,无返回值类型对于上面的结构Point,可声明如下的构造函数:Point(doublea=0,doubleb=0);例2.3使用构造函数初始化对象的示例。structPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}voidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<6、n()//主函数main(){Pointv(6,18);//定义对象,构造函数的参数为a=6,b=18v.Show();//显示v的坐标(6,18)system("PAUSE");//调用库函数system(),输出系统提示信息return0;//返回值0,返回操作系统}在例2.3中,用关键字class替换struct,这时就得到一个标准的类。例2.4标准的类示例。classPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}v7、oidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<
4、标v.Show();//显示v的坐标(6,18)//cout<<"("<5、函数名与结构名相同,无返回值类型对于上面的结构Point,可声明如下的构造函数:Point(doublea=0,doubleb=0);例2.3使用构造函数初始化对象的示例。structPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}voidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<6、n()//主函数main(){Pointv(6,18);//定义对象,构造函数的参数为a=6,b=18v.Show();//显示v的坐标(6,18)system("PAUSE");//调用库函数system(),输出系统提示信息return0;//返回值0,返回操作系统}在例2.3中,用关键字class替换struct,这时就得到一个标准的类。例2.4标准的类示例。classPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}v7、oidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<
5、函数名与结构名相同,无返回值类型对于上面的结构Point,可声明如下的构造函数:Point(doublea=0,doubleb=0);例2.3使用构造函数初始化对象的示例。structPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}voidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<6、n()//主函数main(){Pointv(6,18);//定义对象,构造函数的参数为a=6,b=18v.Show();//显示v的坐标(6,18)system("PAUSE");//调用库函数system(),输出系统提示信息return0;//返回值0,返回操作系统}在例2.3中,用关键字class替换struct,这时就得到一个标准的类。例2.4标准的类示例。classPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}v7、oidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<
6、n()//主函数main(){Pointv(6,18);//定义对象,构造函数的参数为a=6,b=18v.Show();//显示v的坐标(6,18)system("PAUSE");//调用库函数system(),输出系统提示信息return0;//返回值0,返回操作系统}在例2.3中,用关键字class替换struct,这时就得到一个标准的类。例2.4标准的类示例。classPoint{private://数据成员doublex;//x坐标doubley;//y坐标public://公有函数Point(doublea=0,doubleb=0)//构造函数{x=a;y=b;}v
7、oidSet(doublea,doubleb)//设置坐标{x=a;y=b;}voidShow()//显示坐标{cout<<"("<
此文档下载收益归作者所有