基于对象的程序设计(OOP)
来源:互联网 发布:游戏源码交易平台 编辑:程序博客网 时间:2024/06/05 23:40
一、类的基本知识
1. 层次:类>对象>类体:成员(成员变量、成员函数)
ps:其中,类体可以是public,也可以是private,public则可以被外界调用,而private则不能被外界调用
2. 定义成员函数
法一:函数体>3行:在类体内声明成员函数,在类体外定义成员函数(最常用)
法二:函数体<3行:在声明类时在类体内定义
//方法一:在类体内声明成员函数,在类体外定义成员函数class Student{public: void display(); //在类体内声明成员函数 private: int num; string name; char sex;};void Student::display()//在类体外定义成员函数{cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl;}Student stud1.stud2;//方法二:在声明类时在类体内定义class Student{private: int num; string name; char sex; public: void display() {cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; }};Student stud1.stud2;
3. 对象成员的引用
语法:对象名.成员名
例子:对num变量进行赋值:stud1.num = 1001
4. 例子
写程序的思路:
1)定义类变量(私有),声明成员函数(公有)
2)定义成员函数们
3)在主函数中调用成员函数(在调用的时候声明类对象)
例1: 定义多个类对象,定义成员函数,分别输入、输出各对象中的时间,(时:分:秒)
法一:在类外定义函数
#include <iostream>using namespace std;//step1:定义类变量(私有),声明成员函数(公有)class Time{ public: void set_time(); void show_time(); private: int hour,minute,sec; };//step2:定义成员函数set_time()和show_time()void Time::set_time() { cin>>hour; cin>>minute; cin>>sec;}void Time::show_time() { cout<<hour<<":"<<minute<<":"<<sec;}//step3:在主函数中调用成员函数int main(){ Time t1; //在调用的时候声明类对象 t1.set_time(); t1.show_time(); Time t2; t2.set_time(); t2.show_time(); return 0;}
法二:在类体内定义函数
#include <iostream>using namespace std;class Time{ public: void set_time() { cin>>hour; cin>>minute; cin>>sec; } void show_time() { cout<<hour<<":"<<minute<<":"<<sec; } private: int hour,minute,sec;};int main(){ Time t1; t1.set_time(); t1.show_time(); Time t2; t2.set_time(); t2.show_time(); return 0;}
例2: 需要求3个长方体的体积,请编写一个基于对象的程序。数据成员包括length(长)、width(宽)、height(高)。要求用成员函数实现以下功能:
(1) 由键盘分别输入3个长方体的长、宽、高
(2) 计算长方体的体积
(3) 输出3个长方体的体积
#include <iostream>using namespace std;class RT{ public: void set() { cin>>length; cin>>wide; cin>>high; } void v() { vol=length*wide*high; cout<<"v="<<vol<<endl; } private: int length,wide,high,vol;};int main(){ RT r1 ; r1.set(); r1.v(); RT r2 ; r2.set(); r2.v(); RT r3 ; r3.set(); r3.v(); return 0;}
二、类的进阶:构造函数
作用:使对象初始化,即利用构造函数对对象中的数据成员赋初值
说明:构造函数不需要调用,在建立类对象时,系统会自动调用构造函数。
规则:
1)构造函数必须与类名同名,不具有任何类型,不返回任何值
2)和成员函数一样,一般在类体内声明,在类体外定义
1. 无参数
Time(); //在类体内声明构造函数......Time::Time() //在类体外定义构造函数{ hour=0; minute=0; sec=0;}
2. 有参数
Complex(double r=0,double i=0); //类体内:声明构造函数的同时初始化(即:赋初值)//ps:这里之所以要初始化对象数据成员,是因为最后建立对象c3时,没有传递实参,因此必须要有初始化的值才行......Complex::Complex(double r,double i) //类体外:定义构造函数,即往里面写内容,建立对象们共有的数据成员的初始值或函数表达式{ real=r;imag=i;} //ps:如果前面在类体内声明构造函数时,已经初始化了对象成员,那么在类体外定义时就只规定函数表达式就好了//回忆:real和imag是类体中私有部分的数据成员,定义构造函数时,先把形参传给数据成员,再在后面建立类对象时,把实参传递给函数......Complex c1(3,4),c2(5,-10),c3;//主函数中:建立类对象时,传递实际参数
补充:在重载那一小节,matrix相加是无参构造函数,而复数相加是有参构造函数。
阅读全文
0 0
- 基于对象的程序设计(OOP)
- 面向对象程序设计(OOP)的六大原则
- 面向对象程序设计(OOP)的六大原则
- 面向对象程序设计(OOP)的六大原则
- java面向对象的程序设计(oop)
- C++OOP程序设计读书笔记之一:面向对象的程序设计简介
- 基于对象的程序设计
- 面向对象程序设计(OOP)1
- 面向对象程序设计(OOP)2
- Java OOP--面向对象程序设计
- Java三个月 - 面向对象程序设计OOP的乐趣 - 程序人生
- Java三个月 - 面向对象程序设计OOP的乐趣 - 程序人生
- OOP =Object Oriented Programming,=面向对象的程序设计
- php面向对象程序设计(OOP)的61条准则
- 对面向对象程序设计(OOP)的认识
- 面向对象的程序设计( OOP )三大特性:
- php面向对象程序设计(OOP)的61条准则
- 面向对象(oop)的程序设计编写高质量代码
- 测试时一些手机(比如魅族、华为)不能打印日志解决办法
- php常用字符串函数
- 简单的数据库 查询 增删改查 -----
- new String(bytes,offset,length,编码格式)
- Camera2时序图
- 基于对象的程序设计(OOP)
- leetcode 124. Binary Tree Maximum Path Sum
- FL2440——基于安信可A7模块编程实现GPS定位功能
- Win10上使用virtualbox5.1出现supR3HardenedWinReSpawn what:5报错
- hyperledger fabric 1.0交易流程理解
- submile编辑器常用快捷键
- 数据类型和抽象数据类型
- webpack+react+es6 嵌入已有项目
- mybatis动态sql中的trim标签的使用