代码如下:(还有一个类似的Factory.h和Factory.cpp,这五个函数是一个工程里的。)
//Product.h
#ifndef _PRODUCT_H_
#define _PRODUCT_H_
class Product
{
public:
virtual ~Product()=0;
protected:
Product();
private:
};
class ConcreteProduct:public Product
{
public:
~ConcreteProduct();
ConcreteProduct();
protected:
private:
};
#endif
//Product.cpp
#include "Product.h"
#include <iostream>
using namespace std;
Product::Product()
{
}
Product::~Product()
{
}
ConcreteProduct::ConcreteProduct()
{
cout<<"ConcreteProduct..."<<endl;
}
ConcreteProduct::~ConcreteProduct()
{
cout<<"I'm ~ConcreteProduct...."<<endl;
}
//main.cpp
#include "Factory.h"
#include "Product.h"
#include <iostream>
using namespace std;
int main(int argc,char* argv[])
{
Factory* fac=new ConcreteFactory();
cout<<"I am here!"<<endl;
Product* p=fac->CreateProduct();
return 0;
}
4 个解决方案
#1
头文件里有函数声明,编译链接时就能找到。
#2
我第一次见到这种用法,有木有什么文档详细介绍这个的?
#3
有函数前向声明,编译可以通过,但是,只有声明没有cpp文件中的实现,链接是不会通过的。
也许查阅一下“独立编译技术”,对你理解问题会更有帮助。
#4
头文件里有函数声明,编译链接时就能找到。
我第一次见到这种用法,有木有什么文档详细介绍这个的?
有函数前向声明,编译可以通过,但是,只有声明没有cpp文件中的实现,链接是不会通过的。
也许查阅一下“独立编译技术”,对你理解问题会更有帮助。
谢谢!
#1
头文件里有函数声明,编译链接时就能找到。
#2
头文件里有函数声明,编译链接时就能找到。
我第一次见到这种用法,有木有什么文档详细介绍这个的?
#3
头文件里有函数声明,编译链接时就能找到。
我第一次见到这种用法,有木有什么文档详细介绍这个的?
有函数前向声明,编译可以通过,但是,只有声明没有cpp文件中的实现,链接是不会通过的。
也许查阅一下“独立编译技术”,对你理解问题会更有帮助。
#4
头文件里有函数声明,编译链接时就能找到。
我第一次见到这种用法,有木有什么文档详细介绍这个的?
有函数前向声明,编译可以通过,但是,只有声明没有cpp文件中的实现,链接是不会通过的。
也许查阅一下“独立编译技术”,对你理解问题会更有帮助。
谢谢!