C++ - 带有 Visual Studio 的成员函数声明
C++ - Member Function Declaration with Visual Studio
我正在为使用 Visual Studio 的项目编写 class,我通过 IDE 菜单添加了 class,class 是 public,header文件包含在项目headers中,源文件包含在项目源文件中。
构造函数、析构函数和私有成员已经设置好,当我开始编写第一个成员函数时,我得到这个错误:成员函数不能在其[=34 之外声明=].
这是我第一次在 Visual Studio 中写一个 class,我知道 Code::Blocks 需要一些链接代码,这是相同的情况吗?
在header:
#pragma once
class myclass
{
public:
myclass( /*parameters*/ );
void foo ( /*parameters*/ ); //HERE
~myclass();
private:
/* my data members */
};
源文件中:
#include "stdafx.h"
#include "myclass.h"
myclass::myclass( /*parameters*/ )
{
/*constructor code*/
}
void myclass::foo( /*parameters*/ ); //HERE
{
}
myclass::~myclass()
{
/*destructor code*/
}
去掉这里的分号:
void myclass::foo( /*parameters*/ ); //Semicolon HERE
{
}
您不能在 class 定义之外声明成员函数。 Visual Studio 将其视为声明,因为您放置了分号;在方法 foo 的函数签名末尾,将其删除。
我正在为使用 Visual Studio 的项目编写 class,我通过 IDE 菜单添加了 class,class 是 public,header文件包含在项目headers中,源文件包含在项目源文件中。
构造函数、析构函数和私有成员已经设置好,当我开始编写第一个成员函数时,我得到这个错误:成员函数不能在其[=34 之外声明=].
这是我第一次在 Visual Studio 中写一个 class,我知道 Code::Blocks 需要一些链接代码,这是相同的情况吗?
在header:
#pragma once
class myclass
{
public:
myclass( /*parameters*/ );
void foo ( /*parameters*/ ); //HERE
~myclass();
private:
/* my data members */
};
源文件中:
#include "stdafx.h"
#include "myclass.h"
myclass::myclass( /*parameters*/ )
{
/*constructor code*/
}
void myclass::foo( /*parameters*/ ); //HERE
{
}
myclass::~myclass()
{
/*destructor code*/
}
去掉这里的分号:
void myclass::foo( /*parameters*/ ); //Semicolon HERE
{
}
您不能在 class 定义之外声明成员函数。 Visual Studio 将其视为声明,因为您放置了分号;在方法 foo 的函数签名末尾,将其删除。