方法实现方式:类内定义/类外定义

类内定义/类外定义: 指的是函数体实现的位置

类内实现

相当于隐式的内联函数,虽然前面没写

std::string getName();
int getAge();

但是编译的时候,编译器会自动帮你加。

#include <iostream>

class Girl{
public:
    Girl(std::string name, int age){
        this->name = name;
        this->age = age;
    };
    std::string getName(){
        return name;
    }
    int getAge(){
        return age;
    }
private:
    std::string name;
    int age;
};

int main(int argc, char const *argv[])
{
    Girl girl("Scott",18);
    std::cout<<girl.getName()<<std::endl;
    std::cout<<girl.getAge()<<std::endl;
    return 0;
}

/*
Scott
18
*/

类外实现

#include <iostream>

class Girl{
public:
    Girl(std::string name, int age){
        this->name = name;
        this->age = age;
    };
    std::string getName();
    int getAge();
private:
    std::string name;
    int age;
};

int main(int argc, char const *argv[])
{
    Girl girl("Scott",18);
    std::cout<<girl.getName()<<std::endl;
    std::cout<<girl.getAge()<<std::endl;
    return 0;
}

std::string Girl::getName(){
    return name;
}
int Girl::getAge(){
    return age;
}

/*
Scott
18
*/

类外实现

girl.hpp

#include <iostream>

class Girl{
public:
    Girl(std::string name, int age){
        this->name = name;
        this->age = age;
    };
    std::string getName();
    int getAge();
private:
    std::string name;
    int age;
};

gril.cpp

#include "girl.hpp"

std::string Girl::getName(){
    return name;
}
int Girl::getAge(){
    return age;
}

main.cpp

#include "girl.hpp"
using namespace std;

int main(int argc, char const *argv[])
{
    Girl girl("Lucy",18);
    cout<<girl.getName()<<endl;
    cout<<girl.getAge()<<endl;
    return 0;
}

/*
Lucy
18
*/

注意:非XCODE的情况下,要这样编译

g++ main.cpp gril.cpp

实际项目中,建议使用类外方式:首先利于团队合作,直接给个头文件,方便协同开发,也利于把自己的库分享给别人用(丢给对方一个头文件即可)

results matching ""

    No results matching ""