关于C++类的几个问题
我有两个基本问题。第一个是关于其他类的功能。如果我有一个在它的类的头文件,我想用在我创建了另一类功能,做我总是要构造一个类的对象来运行该类像函数:关于C++类的几个问题
someclass class; <----object construction
class.somefunction();
有没有办法只是用对象构造调用函数?
第二个问题是可以将多个小类放在一个头文件中吗?
函数只应用于成员函数,如果它们作用于类的对象。没有对象上采取行动的功能应该只是简单的全局函数(或类静态):
// Global function
void foo() { /* do something */ }
// Static function
class Foo
{
public:
static void foo() { /* do something */ }
};
对于你的第二个问题,是它的确定。通常人们对每个文件都坚持一个类,但在我看来,在单个文件中有几个小类没什么问题。
您(或您正在学习的人)可能来自Java背景,所有功能都必须进入课程。在C++中不存在这样的限制,所以如果这样做更有意义,您应该完全*地编写类之外的函数。 – MatrixFrog 2010-02-12 02:42:01
我认为你的意思是对问题发表评论。 – 2010-02-12 03:00:33
如果你的函数被声明为static
那么你不需要一个对象实例来调用它。
class Foo
{
public:
static void Bar() {}
};
// ...later
Foo::Bar();
要回答你的第二个问题,是的,有时候可以。我之前用小型实用程序结构来做到这一点,这些实用程序结构彼此相关。通常我只是懒惰,不想打扰制作单独的文件。
有没有一种方法只是用对象构造调用函数?
只有在函数声明为静态时才有效。 (好吧,这是一个谎言,其可能没有,如果你颠覆式系统constucting一个对象,但它不是一个好主意)
而第二个问题是,好把多种小班一个头文件?
当然,这是所有的时间。
1静态如已经提到的
2做什么感觉自然。保持相关的课程。一个与Java的问题是它的每个文件一类*执法
但是 - 不可饶恕的罪过正在蔓延整个类BC和d的实现类的实现
即所有类实现的应该是在一个.cpp文件中。
- delcare功能为静态。
- 你在谈论内部类吗?如果是这样的话,那么它完全合法。
我认为你的意思是_without_对象构造? – 2010-02-12 02:13:20