Вы можете иметь это:
namespace name1
{
class show
{
int a,b;
void accept_data(void);
void display_data(void);
friend void use_class(show&);
};
}
void name1::use_class(name1::show& h)
{
h.a = 1;
h.b = 2;
}
и в основном:
name1::show s;
name1::use_class(s);
Я не уверен, почему ваши функции имеют пустые параметры и возвращаемые значения.
ОБНОВЛЕНИЕ:
это компилируется и работает:
#include "stdafx.h"
namespace name1
{
class show
{
int a,b;
void accept_data(void);
void display_data(void);
friend void use_class();
};
}
void name1::show::accept_data()
{
a = 1;
b = 2;
}
void name1::show::display_data()
{
}
void name1::use_class()
{
show s;
s.accept_data();
s.display_data();
}
int _tmain(int argc, _TCHAR* argv[])
{
name1::use_class();
return 0;
}
Но, если я напишу это так:
void use_class()
{
name1::show s;
s.accept_data();
s.display_data();
}
Я получу вашу ошибку.Убедитесь, что ваш use_class
является частью того же пространства имен.