小编use*_*434的帖子

C++:不同翻译单元中具有相同名称的不同类

请考虑以下示例:

// usedclass1.hpp  
#include <iostream>  
class UsedClass
{  
public:
  UsedClass() { }  
  void doit() { std::cout << "UsedClass 1 (" << this << ") doit hit" << std::endl; }
};  

// usedclass2.hpp  
#include <iostream>
class UsedClass
{
public:
  UsedClass() { }
  void doit() { std::cout << "UsedClass 2 (" << this << ") doit hit" << std::endl; }
};

// object.hpp
class Object
{
public:
  Object();
};

// object.cpp
#include "object.hpp"
#include "usedclass2.hpp"
Object::Object()
{
  UsedClass b;
  b.doit();
}

// …
Run Code Online (Sandbox Code Playgroud)

c++ one-definition-rule

7
推荐指数
2
解决办法
1717
查看次数

标签 统计

c++ ×1

one-definition-rule ×1