簡體   English   中英

在 C++ 中使用命名空間?

[英]Using namespaces in C++?

這段代碼有什么問題? 它說 func1 和 func2 沒有聲明。 我嘗試使用“使用命名空間 func1::print()”來聲明它,但我仍然收到此錯誤?

#include<iostream>

using namespace std;

int main(){
func1::print();
func2::print();
return 0;
}

namespace func1 {
void print() {
    cout<<"HELLO WORLD";
}
}

namespace func2 {
void print() {
    cout<<"HELLO";
}
}

只需重新排序您的代碼,如下所示:

#include<iostream>
using namespace std;

namespace func1 {
    void print() {
        cout << "HELLO WORLD";
    }
}

namespace func2 {
    void print() {
        cout << "HELLO";
    }
}

int main() {
    func1::print();
    func2::print();
    return 0;
}

這樣,您的兩個namespaceprint函數在main中使用時已被聲明和定義。

您可以將 function 定義放在 main 之前,或者 function 聲明告訴編譯器 function 存在於某處 稍后它將尋找實際的定義,如果找不到它會抱怨。

#include<iostream>
using namespace std;

namespace func1 {
    void print();
}
namespace func2 {
    void print();
}

int main() {
    func1::print();
    func2::print();
    return 0;
}

namespace func1 {
    void print() {
        cout<<"HELLO WORLD";
    }
}

namespace func2 {
    void print() {
        cout<<"HELLO";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM