写在前面:作为一只小白,感谢小甲鱼老师提供这么好的入门课程。因此在这里做个笔记,如有侵权请联系删除
www.fishc.com
https://blog.csdn.net/qq_30708445/article/details/88596720
1、创建简单的类
OOP过程的第一步是创建一个类,而每个类跟变量一样都有一个名字,声明如下:
class MyFirstClass
{
};
注意: 类名的第一个字母一般采用大写,类声明末尾必须有一个分号,类由变量和函数组成
class Car
{
public:
string color;
string engine;
float gas_tank;
unsigned int Wheel;
};
创建个人函数的步骤: 先创建函数的原型(声明), 再描述该函数本身实现过程
作用域解析操作符(::)的作用: 告诉编译器这个方法存在与何处,或者说是属于哪一个类.
#include <iostream>
#include <windows.h>
#define FULL_GAS 85
using namespace std;
class Car
{
public:
string color;
string engine;
float gas_tank;
unsigned int wheel;
//函数声明
void setColor(string col);
void setEngine(string eng);
void setWheel(unsigned int whe);
void fill_tank(float liter);
int running(void);
void warning(void);
};
void Car::setColor(string col)
{
color = col;
}
void Car::setEngine(string eng)
{
engine = eng;
}
void Car::setWheel(unsigned int whe)
{
wheel = whe;
}
void Car::fill_tank(float liter)
{
gas_tank += liter;
}
int Car::running(void)
{
cout << "我正以120的时速往前移动..." << endl;
gas_tank--;
cout << "当前还剩 " << 100*gas_tank/FULL_GAS << "%" << "油量!" << endl;
return gas_tank;
}
void Car::warning(void)
{
cout << "WARNING!!" << "还剩 " << 100*gas_tank/FULL_GAS << "%" << "油量!" << endl;
}
int main()
{
char i;
Car mycar, car1;
mycar.setColor("WHITE");
mycar.setEngine("V8");
mycar.setWheel(4);
mycar.gas_tank = FULL_GAS;
while (mycar.running())
{
if(mycar.running() < 10)
{
mycar.warning();
cout << "请问是否需要加满油再行驶?[Y/N]" << endl;
cin >> i;
if('Y' == i || 'y' == i)
{
mycar.fill_tank(FULL_GAS);
}
}
}
return 0;
}
C++面向对象
1、面向过程(procedural programming)和面向对象(object-oriented programming)的区别:
面向过程技术关注的是对数据进行处理的过程,OOP技术关注的是对数据进行怎样的处理.
2、C++允许在类里面声明变量,但不允许对它进行赋值
class Car
{
public:
const float TANKSIZE = 85; //出错
}
绕开这一限制的方法就是创建一个静态常量
class Car
{
public:
static const float TANKSIZE = 85; //出错
}
3、可以在声明某个类的同时立刻创建一些该类的对象,但不建议这么做
class Car
{
public:
static const float TANKSIZE = 85; //出错
}car1, car2;
4、把一个对象赋值给另一个同类的对象将会自动使同名的属性有同样的值
Car car1, car2;
car1.setColor("WHITE");
...
car2 = car1;