作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 OOP 中,您希望将一个程序分解为多个类。
在 C# 中,您可以这样做:
namespace a
{
public class ClassA
{
//Methods...that are defined and have code in them.
}
}
要使用该类,您只需执行“使用命名空间 a;”即可。
假设我想在 C++ 中创建一个类,定义它们,并将代码放入其中。
class ClassA
{
public:
void methodA();
}
ClassA::methodA()
{
//implementation.
}
要访问此实现,您只需使用#include "ClassA.h"。我完全理解这一点,然后你必须再次实现该代码?这似乎适得其反,因为我喜欢将我的项目分散到很多类(class)中。
那么实现 ClassA 而不是再次重新实现它的所有方法的正确过程是什么?
最佳答案
您不必在每个 CPP 文件中重新实现它们,C++ 链接器负责确保定义匹配在一起。
您只需要:
标题:
#ifndef FOO_H
#define FOO_H
class Foo{
//Junk goes here
};
#endif
一个cpp:
#include "foo.h"
//implementations for junk goes here
void Foo::junk(){
}
然后您可以包含 foo.h
。每个cpp 将被编译成一个.o
文件。然后,那些 .o
文件被交给链接器,链接器可以找出定义的位置并正确拼凑代码。
关于c++ - 想在另一个 CPP 中使用它们时对 C++ 类感到困惑。 [来自 C#],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13132038/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!