foo.h
class Foo{
private:
void printSpecialBar(Bar b);//syntax error: Identifier Bar
foo.cpp
#include "Bar.h"
void Foo::printSpecialBar(Bar b)
{
//code goes here
}
Bar имеет конструктор по умолчанию и тот, который принимает два int.
В чем проблема с синтаксической ошибкой? Я попытался использовать оператор resuloution для области видимости Bar :: Bar b, но он не исправил его.
Типичной практикой было бы
class Bar;
в Foo.h
, перед любой ссылкой на класс Bar
, и Foo.h
фактический класс, например
#include "Bar.h"
в Foo.cpp
.
#pragma once
Once, верно?
Так как Foo.h
reference Bar, либо используйте форвардную декларацию, либо #include "Bar.h"
в Foo.h
Bar.h
вFoo.h