Хорошо, как уже упоминалось, у меня есть две нерешенные внешние ошибки. Там нет ошибок IntelliSense и тому подобное, только это две ошибки компоновщика. Вот код.
include "stdafx.h"
include < iostream >
using namespace std;
class circle; //forward declaration
class square
{
public:
square create_square(circle user_circle);
};
class circle
{
public:
friend square square::create_square(circle user_circle)
};
square square::create_square(circle user_circle)
{
square user_square(user_circle.get_circumference());
return user_square;
}
// function call
user_square = user_square.create_square(user_circle);
Это не вся программа, но, похоже, ошибка указывает на этот пакет кода
Ошибка 1, ошибка LNK2019: неразрешенный внешний символ
"public: __thiscall circle :: ~ circle (void)" (?? 1circle @@ QAE @ XZ), на который ссылается функция
"public: class class __thiscall square :: create_square (class circle)"
(? Create_square @ квадрат @@ QAE? AV1 @ Vcircle @@@ Z) * 1009 *
C: \ Users \ John \ Documents \ visual studio 2010 \ Проекты \ PROG5 \ PROG5 \ PROG5.obj
Ошибка 2, ошибка LNK2019: неразрешенный внешний символ
"public: __thiscall square :: ~ square (void)" (?? 1square @@ QAE @ XZ), на который ссылается функция
"public: class class __thiscall square :: create_square (class circle)"
(? Create_square @ квадрат @@ QAE? AV1 @ Vcircle @@@ Z) * 1015 *
C: \ Users \ John \ Documents \ visual studio 2010 \ Проекты \ PROG5 \ PROG5 \ PROG5.obj
Я действительно в замешательстве, и я не хочу просто случайно менять код, потому что моя логика должна быть правильной. Объект круга передается в функцию create_square, функция получает диаметр круга и задает его как периметр квадрата. Что касается бессмысленного упражнения, это для класса. Надеюсь, кто-то может помочь, спасибо.