Я пишу класс для проекта с помощью Visual Studio, я добавил класс через меню IDE, класс является общедоступным, файл заголовка включен в заголовки проекта, исходные файлы включены в исходные файлы проекта.
Конструктор, деструктор и закрытые члены уже установлены, когда я начал писать первые функции-члены, я получаю эту ошибку: функция-член не может быть объявлена вне своего класса .
Это мой первый тип написания класса в Visual Studio, я знаю, что Code :: Blocks требует некоторого кода связывания, это тот же случай?
в заголовке:
#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*/
}
2 ответа
Удалите здесь точку с запятой:
void myclass::foo( /*parameters*/ ); //Semicolon HERE
{
}
У вас не может быть объявления функции-члена вне определения класса. Visual Studio воспринимает это как объявление, потому что вы ставите точку с запятой; в конце сигнатуры функции вашего метода foo удалите ее.
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.