I have just downloaded Visual C++ and am trying to write a noddy application. I am well versed in C++ and write for the unix platform.
I am therefore bemused by the compilation errors MS VC++ gives!
Here are the headers///
And now for the source!Code:#pragma once ref class FactoryBase { public: FactoryBase(void); public: virtual ~FactoryBase(void); }; #pragma once #include "factorybase.h" class Widget; ref class Factory : public FactoryBase { public: Factory(void); public: virtual ~Factory(void); Widget * const CreateWidget(); }; #pragma once ref class Widget { public: Widget(void); public: virtual ~Widget(void); };
Code:// Factory.cpp : main project file. #include "stdafx.h" #include "Factory.h" #include "Widget.h" using namespace System; int main(array<System::String ^> ^args) { Console::WriteLine(L"Hello World"); return 0; } Factory::Factory(void) { } Factory::~Factory(void) { } Widget * const Factory::CreateWidget() { return new Widget(); } #include "StdAfx.h" #include "FactoryBase.h" FactoryBase::FactoryBase(void) { } FactoryBase::~FactoryBase(void) { } #include "StdAfx.h" #include "Widget.h" Widget::Widget(void) { } Widget::~Widget(void) { }
Finally this output?
Code:1>------ Build started: Project: Factory, Configuration: Debug Win32 ------ 1>Compiling... 1>Factory.cpp 1>c:\documents and settings\kevin matthews\my documents\visual studio 2005\projects\factory\factory\Widget.h(4) : error C3816: 'class Widget' was previously declared or defined with a different managed modifier 1> c:\documents and settings\kevin matthews\my documents\visual studio 2005\projects\factory\factory\Factory.h(3) : see declaration of 'Widget' 1>.\Factory.cpp(24) : error C3699: '*const ' : cannot use this indirection on type 'Widget' 1> compiler replacing '*const ' with '^' to continue parsing 1>.\Factory.cpp(24) : error C2556: 'Widget ^Factory::CreateWidget(void)' : overloaded function differs only by return type from 'Widget *const Factory::CreateWidget(void)' 1> c:\documents and settings\kevin matthews\my documents\visual studio 2005\projects\factory\factory\Factory.h(12) : see declaration of 'Factory::CreateWidget' 1>.\Factory.cpp(24) : error C2373: 'Factory::CreateWidget' : redefinition; different type modifiers 1> c:\documents and settings\kevin matthews\my documents\visual studio 2005\projects\factory\factory\Factory.h(12) : see declaration of 'Factory::CreateWidget' 1>.\Factory.cpp(25) : error C2750: 'Widget' : cannot use 'new' on the reference type; use 'gcnew' instead 1>Build log was saved at "file://c:\Documents and Settings\Kevin Matthews\My Documents\Visual Studio 2005\Projects\Factory\Factory\Debug\BuildLog.htm" 1>Factory - 5 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



LinkBack URL
About LinkBacks


