回顾:之前我们讨论了使用面向对象的编程技术开发程序最基本步骤:
- 定义一个有属性和方法的类(模板)
- 为该类创建一个变量(实现)
这是OOP技术的基础,现在逐步向大家介绍一些更复杂和更有用的概念。
首先是构浩器,它是类里的一种特殊的方法。
定义构浩器
构造器和通常方法的主要区别:
(1)构浩器的名字必须和它所在的类的名字一样
(2)系统在创建某个类的实例时会第一时间自动调用这个类的构造器
(3)构浩器永远不会返回任何值
创建构浩器,需要先把它的声明添加到类里:
class Car{ Car( void ); }
注意大小写与类名保持一致。在结束声明之后开始定义构造器本身:
Car:Car(void)//不用写void Car::Car(void) { color="WHITE"; engine="V8"; wheel=4; gas_tank=FULL_GAS; }
好,到这里我们就可以自己着手对之前打造的那辆跑车代码进行“改装"了吧?car.cpp
#include <iostream> #include <windows.h> #define FULL_GAS 85 class Car { public: std::string color; std::string engine; unsigned int gas_tank; unsigned int wheel; Car(void); void setColor(std::string col); void setEngine(std::string eng); void setWheel(unsigned int whe); void fillTank(int liter); int running(void); void warning(void); }; Car::Car(void) { color = "While"; engine = "V8"; wheel = 4; gas_tank = FULL_GAS; } void Car::setColor(std::string col) { color = col; } void Car::setEngine(std::string eng) { engine = eng; } void Car::setWheel(unsigned int whe) { wheel = whe; } void Car::fillTank(int liter) { gas_tank += liter; } int Car::running(void) { char i; std::cout << "我正在以120的时速往前移动。。。越过那高山越过那河。。。\n"; gas_tank--; std::cout << "当前还剩 " << 100*gas_tank/FULL_GAS << "%" << "油量!\n"; if( gas_tank < 10 ) { std::cout << "请问是否需要加满油再行驶?(Y/N)\n"; std::cin >> i; if( ‘Y‘ == i || ‘y‘ == i ) { fillTank(FULL_GAS); } if( 0 == gas_tank ) { std::cout << "抛锚中。。。。。。"; return 1; } } return 0; } void Car::warning(void) { std::cout << "WARNING!!" << "还剩 " << 100*gas_tank/FULL_GAS << "%" << "油量!"; } int main() { Car mycar; while( !mycar.running() ) { ; } return 0; }
构造对象数组:之前我们已经说过,数组可以是任何一种数据类型,当然也包括对象。
如:Car mycar[10];
调用语法依旧是:mycar[x].running; 注:x代表着给定数组元素的下标。
好了,自己造十几辆法拉利“自慰下”。
原文地址:https://www.cnblogs.com/tianqizhi/p/10262271.html
时间: 2024-10-27 12:33:59