这是设置头文件的正确方法吗?

时间:2014-05-18 15:52:34

标签: c++ class

我正在尝试使用课程。因为我也去了所有的全局变量等等。这很有效。但是如何在标题中实现#define value 100;之类的内容?

#ifndef COUNT_H_
#define COUNT_H_

// Definitions
#define first 100;
#define second 200;

// Class definition
class Account {
    private:
    int difficult(int);

    public:
    int easy (int);
} ;

#endif /* COUNT_H_ */

这是一种正确的做事方式吗?它有效,但它也很常见吗?

2 个答案:

答案 0 :(得分:1)

声明这样的头文件很好。您也可以在Visual Studio中使用#pragma once,但我个人不愿意这样做。

正如Mat所说,最好在宏上使用常量来表示类型。因为你不必担心意外重新定义它们。

答案 1 :(得分:0)

您可以在代码和/或#include此文件的文件中使用类似全局常量等定义。定义通常用作宏:

#define max(a, b)((a > b) ? a : b)

使用define时,预处理器将定义放在使用宏的位置:

int i = max(a, b); // translated as int i = (a > b) ? a : b;

请记住#define预处理程序指令,它与编译时常量几乎相同(当然,除了类型定义)为:

const int CI = 5;

但它与运行时常量明显不同:

int foo() { return 451; }
const int CJ = foo()

你不应该在你的宏中加分号的原因(当然,如果没有必要,那就是你这样做的时候:

#define first 100;

你已完成作业"first" is "100;" 所以这段代码:

int a = first // <- without semicolon

有效