sách gpt4 ai đã đi

c++ - 命名空间与命名约定

In lại 作者:行者123 更新时间:2023-11-30 04:13:47 26 4
mua khóa gpt4 Nike

最近我为自己开始了一个新的小项目,并且正在阅读一些关于命名约定的文献。独立于哪种编码风格是首选,google coding stylehoặc hungarian notation (在我看来,系统匈牙利风格(即使有人认为它不是一个好的风格)不是应用程序风格)或我没有提到的其他一些风格。我考虑过使用命名约定或通过 namespace 进行命名。我也读过这个 bưu kiện .

我的注意力在继承上。

谷歌喜欢的例子:

class MyClassInterface {
int some_stuff() = 0;
};

class MyClassA : MyClassInterface {
int some_stuff() { return 1; }
};

class MyClassB : MyClassInterface {
int some_stuff() { return 2; }
};

现在,我的想法是使用命名空间:

namespace my {

namespace interface {
class Class {
int some_stuff() = 0;
};
} // namespace interface

namespace a {
class Class : interface::Class {
int some_stuff() { return 1; }
};
} // namespace a

namespace b {
class Class : interface::Class {
int some_stuff() { return 2; }
};
} // namespace b

} // namespace my

这种命名的优点可以在这个例子中看出:

using namepsace my;

void foo(interface::Class lala) {
// do something;
}

// ...
int chính() {
using namespace a;

Class bar;
foo(bar);

b::Class bar2;
foo(bar2);
}

现在我可以输入一个 using namespace 并且它将始终使用首选的那个,但是所有其他子类仍然可以通过那里的命名空间访问。

所以我的问题是,这是个好主意,还是有一些我看不到的缺点?

biên tập:

我也可以用

namespace my {

namespace interface {
class Class {
int some_stuff() = 0;
};
} // namespace interface

class ClassA : interface::Class {
int some_stuff() { return 1; }
};

class ClassB : interface::Class {
int some_stuff() { return 2; }
};

} // namespace my

不要嵌套太多命名空间。

附录

我不确定 StackOverflow 是否适合提出问题,但对程序员来说甚至没有标签命名约定(但命名标准)。并且实际上并没有太多关于 namespace 和命名约定的讨论。如果错了,我可以提出我的问题。

26 4 0
Bài viết được đề xuất: c++ - 滥用 istream& get
Bài viết được đề xuất: java - 在 hasNext(String pattern) 中指定字符串模式
Bài viết được đề xuất: java - 计算终点坐标
Bài viết được đề xuất: c++ - gSOAP - 如何使用 SSL 和自签名证书
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com