繁体   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