我有两个基本问题。第一个是关于其他类的功能。如果我有一个带有类的头文件,并且我想在我创建的另一个类中使用该函数,我是否总是必须构造一个类对象来运行该类中的函数,如:
someclass class; <----object construction
class.somefunction();
有没有办法用对象构造调用函数?
第二个问题是可以在一个头文件中放入多个小类吗?
答案 0 :(得分:3)
如果您的函数声明为static
,那么您不需要对象实例来调用它。
class Foo
{
public:
static void Bar() {}
};
// ...later
Foo::Bar();
要回答你的第二个问题,是的,有时候还可以。之前我已经完成了与彼此相关的小实用程序结构。通常我只是懒惰而且不想打扰制作单独的文件。
答案 1 :(得分:3)
如果函数作用于类的对象,则它们应该只是成员函数。不作用于对象的函数应该只是普通的全局函数(或类静态):
// Global function
void foo() { /* do something */ }
// Static function
class Foo
{
public:
static void foo() { /* do something */ }
};
对于你的第二个问题,是的,没关系。一般来说,每个文件都会粘贴一个类,但在我看来,在一个文件中只有一些小类是没有错的。
答案 2 :(得分:0)
有没有办法只使用对象构造调用函数?
仅当函数声明为static时。 (好吧,这是谎言,如果你颠覆了类型系统,它的可能而不构建对象,但这不是一个好主意)
第二个问题是可以在一个头文件中放入多个小类吗?
当然,它一直在做。
答案 3 :(得分:0)
已经提到的1静态
2做自然感觉。保持相关课程。 JAva的一个问题是每个文件狂热地执行一个类
然而 - 不可饶恕的罪是在类b c和d的实现中传播类a的实现
即所有类实现都应该在一个.cpp文件中。
答案 4 :(得分:0)