如何在类C ++中添加外部函数声明?

时间:2016-07-05 10:54:25

标签: c++ oop

我有以下代码。我正在尝试创建一个类,给定一个服务器,它找到它的服务器类型,然后添加这种服务器的正确方法。到目前为止,我有一个虚拟课,我被困在这里。在defineServer()函数中,我定义了一个宏并为其赋值1或2.在类声明之外,然后我尝试包含它们。有没有办法解决或做到这一点?

Server.cpp

class Server {
public:
    Server(int server) {
        //setServerType(getServerType());
        //defineServer(getServerType());
        this->server = server;
    }
    void defineServer() {
        if(this->server == 1) {
            #define SERVER 1
            std::cout << "SERVER_1 defined" << std::endl;
        }
        if(this->server == 2){
            #define SERVER 2
            std::cout << "SERVER_2 defined" << std::endl;
        }
    }
    #if SERVER 1
        #include "Server1.h"
        std::cout << "Server 1 added" << std::endl;
    #endif // SERVER_1
    #if SERVER 2
        #include "Server2.h"
        std::cout << "Server 2 added" << std::endl;
    #endif // SERVER_2
private:
    int server;
};

主要功能:

int main() {
    Server server = Server(1);
    server.defineServer();
    server.print();
    return 0;
}

Server1.h

void print() {
    std::cout << "Ye1" << std::endl;
}

Server2.h

void print(){
    std::cout << "Ye2" << std::endl;
}

1 个答案:

答案 0 :(得分:2)

这是非常糟糕的设计。您最好尝试子类化Server类,重新实现print()方法,或者只将if-else语句放入print()。