請問您可以在Visual C++中幫助我處理這些錯誤嗎?我是C++中的新成員,我從NetBeans中導入了此代碼(設計模式Factory)。在NetBeans中,此代碼是正確的。但現在我需要編譯在Microsoft Visual Studio 2010這個代碼,我這是產生這些錯誤:將NetBeans C++項目導入Visual Studio 2010
Creator.h
#pragma once
#include "stdafx.h"
class Creator
{
public:
Product* createObject(int month);
private:
};
錯誤:
- 錯誤C2143:語法錯誤:缺少「 ;」 ''在線 - 產品 createObject(int month)
- 錯誤C4430:缺少類型說明符 - 假定爲int。注意:C++不支持在線的default-int - Product * createObject(int month);
Creator.cpp
#include "stdafx.h"
Product* Creator::createObject(int month) {
if (month >= 5 && month <= 9) {
ProductA p1;
return &p1;
} else {
ProductB p2;
return &p2;
}
}
錯誤:
智能感知:聲明是不兼容 「造物主:: CREATEOBJECT(INT梅西奇)」(第9行聲明 - 這就是:產品 createObject(int month);)
stdafx.h:
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
using namespace std;
#include "Creator.h"
#include "Product.h"
#include "ProductA.h"
#include "ProductB.h"
Product.h:
#pragma once
#include "stdafx.h"
class Product
{
public:
virtual string zemePuvodu() = 0;
Product(void);
~Product(void);
};
Product.cpp:
它只有:
#include "stdafx.h"
Product::Product(void)
{
}
Product::~Product(void)
{
}
感謝您的回答。
您的產品類在哪裏? – taocp
刪除'#include「stdafx.h」'行。代之以放置'class Product;'。這對於使用'Product *'來說已經足夠了。 –
我從Creator中刪除了私人內容,但它不會改變任何內容。 – Mato