我有一个由多个(实际上很多) .cpp和.h文件组成的C++项目。编写头文件时,我有一个文件,如下所示
例如MyHeaderFile.h
#ifndef _MYHEARDERFILE_H
#define _MYHEARDERFILE_H
// Here i have function defintion.
void myFunc() {cout << "my function" << endl; }
#endif
以上文件包含在多个文件中。编译时,我得到了"myfunc“错误的多个定义。我希望头部只包含一次,因为我有#ifndef检查,所以我
因此,我最近一直有这个非常令人沮丧的问题与视觉C++ 2012。直到几个小时前,我还在编写代码,一切都如愿以偿,直到我决定优化一些东西并删除几个类。我修正了所有由此而出现的错误,例如假包含等。不幸的是,在此之后,VS编译器变得疯狂了。它开始给我带来错误,例如:
Error 14 error C2653: 'Class' : is not a class or namespace name
甚至是
Error 5 error C2143: syntax error : missing ';' before '}'
Error 4 error C20
在eclipse中,每当我创建一个新的C++类或C头文件时,我都会得到以下类型的结构。假设我创建了头文件example.h,我得到了以下内容:
/*Comments*/
#ifndef EXAMPLE_H_
#define EXAMPLE_H_
/* Place to put all of my definitions etc. */
#endif
我认为,如果EXAMPLE_H_没有定义,那么就定义它,这可能会根据您使用的编译和链接项目的工具的不同而有用。不过,我有两个问题:
,这很常见吗?我不常看到它。使用这种方式是个好主意,还是应该直接开始定义您的代码。 EXAMPLE_H_到底是什么?
伙计们,这是我在StackOverflow上的第一个问题,所以请原谅我犯了什么错误。
我正在编写一个小项目,其中包含2个源文件和3个头文件。
// some_template_functions.h
#ifndef SOME_TEMPLATE_FUNCTION_H
#define SOME_TEMPLATE_FUNCTION_H
template <typename T>
int getvalue(string line, string key, T & val)
{
// method to get value (all the types except str
我是C++的新手。最近,我正在制作一个小程序,它在单独的文件中使用类。我还想使用setter和getter (set & get)函数为变量赋值。当我运行这个程序时,编译器给了我一个奇怪的错误。它说'string‘不命名一个类型。以下是代码:
MyClass.h
#ifndef MYCLASS_H // #ifndef means if not defined
#define MYCLASS_H // then define it
#include <string>
class MyClass
{
public:
// this is the c
我的C++程序出错。这很可能是简单的事情,因为我才刚刚开始编程。
错误是:
Error 1 error C2511: 'void BMI::getWeight(double)' : overloaded member function not found in 'BMI' c:\users\**********\documents\visual studio 2012\projects\project2\project2\bmi.cpp 40 1 Project2
#include <iostream>
#include <s