有人可以告诉我创建包含类,子类和方法的.hpp和.cpp的正确方法是什么?我必须使用export "C" firstClass* create_object { return new firstClass; }吗?(我使用C ++工作。)我应该拥有file.hpp还是file.h?
#include <string>
//public ?? how can i have this?
class firstClass
{
public:
firstClass();
class secondClass
{
public:
secondClass();
std::string name;
virtual std::string method1();
} *sec;
virtual void DoSomething();
} *first;
// And for a private class?
class private *priv;
Run Code Online (Sandbox Code Playgroud)
在file.cpp中
#include file.hpp
firstClass::firstClass()
{
sec = new firstClass::secondClass();
}
std::string firstClass::secondClass::method1()
{
//code
}
Run Code Online (Sandbox Code Playgroud)
现在是否extern每个类/子类都必须有一个对象?如果要创建一个.so文件并使用dlsym和dlopen来访问类,子类和方法,修改值,发送对特定方法的引用,是否有必要?谢谢!
extern "C" firstClass* create_object()
{return new firstClass}
extern "C" secondClass* create_object()
{return new secondClass}
Run Code Online (Sandbox Code Playgroud)
您是否拥有file.hpp还是file.h只是偏好问题。我个人使用.hppC ++而不是C来表示。
在C ++中,与Java不同,全局名称空间中的类不是public或private。但是,您可以通过各种方式隐藏或限制对类的访问。例如:
private参加另一堂课。其他几点:
file.hpp是#include "file.hpp"firstClass和secondClass类具有虚拟方法和默认析构函数。你应该让你的析构函数public和virtual,或protected与非virtual类定义:
class SomeClass {
// code
};
Run Code Online (Sandbox Code Playgroud)
当您想要指向它的指针时,您应该编写SomeClass* myPointer;而不是声明first和的方式sec。
通常,您希望将类声明和/或定义以及函数声明一起放在头文件中。实现在源文件中。例:
// Header file:
class FirstClass {
public:
FirstClass();
void DoSomething();
};
// Source file:
FirstClass::FirstClass()
{
// code
}
void FirstClass::DoSomething()
{
// code
}
Run Code Online (Sandbox Code Playgroud)
我建议您选择一本C ++教科书,其中充分介绍了这些基础知识。我个人的建议是Accelerated C ++。
| 归档时间: |
|
| 查看次数: |
9710 次 |
| 最近记录: |