2

我正在使用 Qt Creator (2.7.0),我想以更短的方式编写某些代码,而不创建它的附加功能。

想象一个类:

class Car {
public:
    Car(const int velocity=0);
    int getVelocity() const;
    void setVelocity(const int velocity);
private:
    int m_velocity;
};

我们汽车的其他方法(或其他类的方法)经常需要调用这一段代码:

int v = getVelocity();
for (unsigned int i = 0; i < v; i++) {
    // Some behavior
    setVelocity(v + i);
}

一些行为”部分显然每次都不同。

有没有办法做到这一点,所以我可以写一些类似的东西:

velocity {
    // Some behavior
}

或者类似的东西,漂亮又短?

4

1 回答 1

3

好吧,看起来不像您的帖子,但宏可以完成这项工作:

#define velocity(SOME_BEHAVIOR)            \
    int v = getVelocity();                 \
    for (unsigned int i = 0; i < v; i++) { \
        SOME_BEHAVIOR                      \
        setVelocity(v + i);                \
    }

像这样使用它:

velocity (
    // Some behaviour
)

使用宏时要注意通常的注意事项,特别是在调用宏时要小心大括号。

于 2013-06-07T19:19:09.270 回答