//Circle1.h文件
//下面一段代码是为了防止这个头文件(即Circle.h文件)被重复使用
#pragma once
//当你的项目已经存在Circle类型的时候,便不可以重复定义这个类了
//右击项目/头文件/源文件,添加,创建类
//此时会生成一个.h文件,一个.cpp文件,.h文件用于类的声明,.cpp文件用于类的实现,但这个.cpp文件并不包含main函数,只是单纯用于这个类的实现
class Circle1
{
public:
//类的头文件中方法(函数)只写声明,不写定义(即具体实现)
void setR(double r);
double getR();
double getGirth();
double getArea();
private:
//变量(不论私有还是公开)是要完整写的
double my_r;
double my_girth;
double my_area;
};
//Circle1.cpp文件
#include "Circle1.h"//实现类方法的.cpp文件也要包含类的头文件,这样才引用到这个类的作用域
//.cpp文件中具体实现Circle类里的方法,但在具体完成方法的时候,需要加上类的作用域,不然编译器不知道这个函数被实现出来时属于谁的,加上类名(即作用域)就不会产生歧义了
//注意:一定要加上作用域(即类的名字)
void Circle1::setR(double r)
{
my_r = r;
}
double Circle1::getR()
{
return my_r;
}
double Circle1::getGirth()
{
my_girth = 2 * 3.14 * my_r;
return my_girth;
}
double Circle1::getArea()
{
my_area = 3.14 * my_r * my_r;
return my_area;
}
//main.cpp文件
#include <iostream>//<>表示在系统文件库中查找
#include "Circle1.h"//""表示在当前所在项目查找
using namespace std;
//经典的三文件形式:一个头文件声明类,一个.cpp文件实现类的方法,一个包含main的.cpp文件为主程序
int main()
{
int r = 10;
int girth;
int area;
Circle1 circle;
circle.setR(r);
girth = circle.getGirth();
area = circle.getArea();
cout << "girth=" << girth << endl;
cout << "area=" << area << endl;
return 0;
}