Pea*_*Gen 22 c++ visual-studio-2010
首先,我是C++的新手.我为每个C++类打开一个头文件.现在我需要创建一个抽象类.以下是我的代码
Magic.h
#pragma once
class Magic
{
public:
Magic(void);
~Magic(void);
virtual void display()=0;
};
Run Code Online (Sandbox Code Playgroud)
Magic.cpp
#include "Magic.h"
Magic::Magic(void)
{
}
Magic::~Magic(void)
{
}
Run Code Online (Sandbox Code Playgroud)
现在,如您所知,我无法在cpp文件中添加以下内容.
Magic::display()
{
}
Run Code Online (Sandbox Code Playgroud)
那么,我真的需要一个Abstract类的.cpp文件吗?否则,我错误地调用display()了.cpp文件?
Mat*_*Mat 19
您不需要实现文件.只需内联定义所有必需的成员(如果不需要,不要定义纯虚拟成员).
class Magic
{
public:
Magic(void) {};
~Magic(void) {};
virtual void display()=0;
};
Run Code Online (Sandbox Code Playgroud)
Bha*_*hat 10
如果您遵循2-files-per-class和one-class-in-each-set-of-files约定,.cpp即使您正在编写抽象类,最好还是有一个文件.
除了保持一致性之外还有一些其他优点:拥有一个.cpp或一个实现文件为将来扩展提供了空间,如果你要为你的类族添加一个非虚拟的常见行为,基类是正确的位置添加它.此外,.cpp文件中的少量编辑将导致编译时间远远少于.h多个地方包含的编辑时间.
除了约定,你可以很好地将一个类(抽象或不抽象)放在一个.h文件中.像STL这样的图书馆一直这样做.
| 归档时间: |
|
| 查看次数: |
19273 次 |
| 最近记录: |