相关疑难解决方法(0)

C++具有相同名称的多个类

说我有两个不同的cpp文件.两者都声明具有相同名称的类,但可能是完全不同的结构(或者可能是相同的结构,不同的实现).这些类不会出现在头文件中.(例如,假设它们是不同列表类的Node类.)

我看到这些类冲突了.这是标准的预期吗?这个问题有什么解决方案?

更新:

正如答案/评论所暗示的那样,匿名命名空间就是我所寻求的.

c++ scope class

15
推荐指数
4
解决办法
2万
查看次数

为什么在头文件中定义类时没有多重定义错误?

我不确定我是否正确地提出了这个问题,但让我解释一下.

首先,我读了这篇解释声明和定义之间差异的文章:http: //www.cprogramming.com/declare_vs_define.html

其次,我从之前的研究中了解到,在头文件中定义变量和函数是不好的做法,因为在链接阶段,您可能有多个同名的定义会引发错误.

但是,为什么课不会发生这种情况呢?根据另一个SO答案( 定义和声明之间有什么区别?),以下是一个类定义:

    class MyClass {
        private:
        public:
    };
Run Code Online (Sandbox Code Playgroud)

如果上面的定义是在头文件中.然后,据推测,您可以有多个.cpp文件#include该标头.这意味着在多个.o文件中编译后,类被多次定义,但似乎没有引起太多问题......

另一方面,如果它是在头文件中定义的函数,它会明显地引起问题...从我的理解... mayb?

那么类定义有什么特别之处呢?

c++ linker header-files

10
推荐指数
1
解决办法
1382
查看次数

标签 统计

c++ ×2

class ×1

header-files ×1

linker ×1

scope ×1