面向对象
//1.所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造极值,来认识、理解、
// 刻画客观世界和设计、构造相应的软件系统(模拟现实)
//2.对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系
//3.面向对象不是某一种语言的特性,而是一种编程思想
//4.采用过程性编程方法时,首先考虑遵循的步骤,然后考虑如何表示这些数据
//5.OOP程序员-首先会考虑数据,不仅要考虑如何表示这些数据,还要考虑如何使用数据
抽象和类
//抽象:从具体事物抽取共同的本质特征
//C++中的类:
//1.类是一种将抽象转换为用户定义类型的工具
//2.将数据表示和操纵数据的方法组合成一个整体
//3.类的实例称为对象
//4.类中的变量和函数称为成员
//类的声明 :使用class/struct关键字声明类型 class 类名{}; struct 类名{};
//1.class方式声明的类型与struct声明的类型仅仅是形式上不同
//2.其唯一的区别在于使用class声明的类型默认成员是私有的(private),
// 而struct声明的类型默认成员是公有的(public)
头文件
#ifndef LANDOWNERV1_H
#define LANDOWNERV1_H
#pragma once
#include <string>
#include<iostream>
using namespace std;
class LandOwnerv1
{
public:
string name;; //地主的名称
long score; //地主的积分
int cards[20]; //地主的手牌数目
public:
LandOwnerv1() {} //实现了默认构造函数
~LandOwnerv1() {} //实现了解析函数
inline void TouchCard(int); //声明摸牌方法
inline void showScore(); //声明显示积分方法
};
//函数定义 :: 作用域解析运算符
void LandOwnerv1::TouchCard(int cardCount) //声明摸牌方法
{
//暂时省略函数的实现
cout << name << "摸了" << cardCount << "张牌" << endl;
}
void LandOwnerv1::showScore() //声明显示积分方法
{
cout << name << "当前的积分为:" << score << endl;
}
#endif //LANDOWNERV1_H
源文件
#include "LandOwnerv1.h" //如果要是用类,必须包含类的头文件
#include <iostream>
#include <string>
using namespace std;
int main()
{
//数据类型 变量名
int num;
num = 0;
LandOwnerv1 landOwner1; //声明了一个LandOwnerv1类型的变量:landOwner1
landOwner1.name = "张三";
landOwner1.score = 100;
//调用对象的成员方法
//landOwner1.cards[0] = 9;
landOwner1.TouchCard(20);
landOwner1.showScore();
}
运行结果为:
张三摸了20张牌
张三当前的积分为:100