c++怎么将一个类,拆分出接口类,和实现类

还拿上一遍中定义的GradeBook类来实现:

#include <iostream>
using std::cout;
using std::endl;

#include <string> // program uses C++ standard string class.
using std::string;

#include <conio.h>

// GradeBook class definition
class GradeBook
{
public:
    // constructor initializes courseName with string supplited as argument.
    GradeBook(string name)
    {
        this->courseName=name;
    } // end GradeBook constructor

    // function to set the course name
    void setCourseName(string name)
    {
        this->courseName=name;// store the course name in the object.
    }// end function setCourseName

    // function to get the course name.
    string getCourseName()
    {
        return courseName;// return object's courseName
    }// end function getCourseName

    // display a welcome message to the GradeBook user
    void displayMessage()
    {
        // call getCourseName to get the courseName
        cout<<"Welcome to the grade book for \n"<<getCourseName()<<"|"<<endl;
    }// end function displayMessage
private :
    string courseName;
};// end class GradeBook

// function main begins program execution
int main()
{
    // create two GradeBook objects.
    GradeBook gradeBook1("CS101 Introduction to C++ programing");;
    GradeBook gradeBook2("CS102 Data Structures in C++");

    // display initial value of courseName for each GradeBook
    cout<<"gradeBook1 created for course:"<<endl;
    gradeBook1.displayMessage();
    cout<<"gradeBook2 created for course:"<<endl;
    gradeBook2.displayMessage();

    cout<<"Test the get function"<<endl;
    cout<<"gradeBook1 call getCourseName"<<gradeBook1.getCourseName()<<endl;
    cout<<"gradeBook2 call getCourseName"<<gradeBook2.getCourseName()<<endl;
    std::cin.get();

    return 0; // indicates successful termination.
}// end main
View Code

代码拆分结构:

定义出接口(头文件/GradeBook.h):

#include<string>
using std::string;

// GradeBook class definition
class GradeBook
{
public:
    // constructor initializes courseName with string supplited as argument.
    GradeBook(string name);
    // function to set the course name
    void setCourseName(string name);
    // function to get the course name.
    string getCourseName();
    // display a welcome message to the GradeBook user
    void displayMessage();
private :
    string courseName;
};// end class GradeBook

 

定义出实现类(源文件/GradeBook.cpp):

#include <iostream>
using std::cout;
using std::endl;

#include "GradeBook.h" // include definition of class GradeBook

// constructor initializes courseName with string supplited as argument.
GradeBook::GradeBook(string name)
{
    this->courseName=name;
} // end GradeBook constructor

// function to set the course name
void GradeBook::setCourseName(string name)
{
    this->courseName=name;// store the course name in the object.
}// end function setCourseName

// function to get the course name.
string GradeBook::getCourseName()
{
    return this->courseName;// return object's courseName
}// end function getCourseName

// display a welcome message to the GradeBook user
void GradeBook::displayMessage()
{
    // call getCourseName to get the courseName
    cout<<"Welcome to the grade book for \n"<<getCourseName()<<"|"<<endl;
}// end function displayMessage

 

在“源文件“下定义Main.cpp写main测试函数:

#include <iostream>
using std::cout;
using std::endl;

#include <conio.h>

#include "GradeBook.h" // include definition of class GradeBook

// function main begins program execution
int main()
{
    // create two GradeBook objects.
    GradeBook gradeBook1("CS101 Introduction to C++ programing");;
    GradeBook gradeBook2("CS102 Data Structures in C++");

    // display initial value of courseName for each GradeBook
    cout<<"gradeBook1 created for course:"<<endl;
    gradeBook1.displayMessage();
    cout<<"gradeBook2 created for course:"<<endl;
    gradeBook2.displayMessage();

    cout<<"Test the get function"<<endl;
    cout<<"gradeBook1 call getCourseName:"<<gradeBook1.getCourseName()<<endl;
    cout<<"gradeBook2 call getCourseName:"<<gradeBook2.getCourseName()<<endl;
    std::cin.get();

    return 0; // indicates successful termination.
}// end main

输出结果:

 

转载于:https://www.cnblogs.com/yy3b2007com/p/3714840.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值