[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现

目录

一、前言

没想到之前随手写的codeblocks下建立多个源文件竟然有这么多的浏览量。

那我干脆在出一个2.0版本,刚好涉及到C++中类的相关知识。

二、新建project

老样子,先建立一个新project
[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现
默认之后如下图
[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现

三、新建类声明头文件

以经典学生类研究对象为例子
在该project下新建一个.h头文件
[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现
还是在相同project下建立
[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现

[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现

在student.h头文件下编写我们想设置学生类的各种参数

///student.h
#include <string.h>
using namespace std;

class Student
{
private:///私有类型
    string name;	///学生姓名
    int age;		///学生年龄
    char sex;		///学生性别
public:///公有类型
    void Display();///展示学生的信息
    void SetStu(string name1,int num1,char sex1);///为学生信息设置初始值
};



如图展示
[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现

当然public 里的函数可以写在类里面,也可以像我接下来的步骤一样写到单独的一个cpp文件中进行封装。个人比较建议把函数扩展单独写进一个cpp文件中,便于后期维护。也体现出了程序猿写代码的长期性。

四、新建包含类成员函数的定义文件

新建一个cpp文件用来封装成员函数的扩展。
[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现
编写student类中public成员函数的扩展

///student.cpp
#include <iostream>
#include "student.h"

using namespace std;

void Student::Display()///打印学生信息
{
    cout << "name = " << name << endl;
    cout << "age = " << age << endl;
    cout << "sex = " << sex << endl;
}

void Student::SetStu(string name1,int age1,char sex1)///对应姓名,年龄,性别信息传递至private内
{
    name = name1;
    age = age1;
    sex = sex1;
}

[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现

五、编写主文件

我们新建一个projection时就会自带一个main.cpp文件

所以直接在main.cpp中编写

///main.cpp
#include <iostream>
#include "student.cpp" ///引用student.h头文件

using namespace std;


int main()
{
    Student stu;///新建一个学生对象
    stu.SetStu("Li",22,'F');///设置初始对象信息
    stu.Display();///展示
    return 0;
}

最终文件排序如下图
[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现

六、执行

结果正确没有问题。
[codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现

上一篇:Codeblocks代码调试(debug)流程————C++入门学习笔记(四)


下一篇:Linux Kernel Oops异常分析