C++主程序如何调用同一个工程的另一个源文件???

时间:2022-08-29 16:21:15
最近在看一个关于设计模式的文档,第一个设计模式的源代码,我有点不太懂……主程序只包含了两个头文件Product.h、Factory.h它里面的指针是如何用到另外两个.cpp文件里的函数的?

代码如下:(还有一个类似的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


引用 1 楼 buyong 的回复:
头文件里有函数声明,编译链接时就能找到。

我第一次见到这种用法,有木有什么文档详细介绍这个的? C++主程序如何调用同一个工程的另一个源文件???

#3


引用 2 楼 Alie_AC 的回复:
Quote: 引用 1 楼 buyong 的回复:

头文件里有函数声明,编译链接时就能找到。

我第一次见到这种用法,有木有什么文档详细介绍这个的? C++主程序如何调用同一个工程的另一个源文件???


有函数前向声明,编译可以通过,但是,只有声明没有cpp文件中的实现,链接是不会通过的。

也许查阅一下“独立编译技术”,对你理解问题会更有帮助。

#4


引用 3 楼 mougaidong 的回复:
Quote: 引用 2 楼 Alie_AC 的回复:

Quote: 引用 1 楼 buyong 的回复:

头文件里有函数声明,编译链接时就能找到。

我第一次见到这种用法,有木有什么文档详细介绍这个的? C++主程序如何调用同一个工程的另一个源文件???


有函数前向声明,编译可以通过,但是,只有声明没有cpp文件中的实现,链接是不会通过的。

也许查阅一下“独立编译技术”,对你理解问题会更有帮助。

谢谢!

#1


头文件里有函数声明,编译链接时就能找到。

#2


引用 1 楼 buyong 的回复:
头文件里有函数声明,编译链接时就能找到。

我第一次见到这种用法,有木有什么文档详细介绍这个的? C++主程序如何调用同一个工程的另一个源文件???

#3


引用 2 楼 Alie_AC 的回复:
Quote: 引用 1 楼 buyong 的回复:

头文件里有函数声明,编译链接时就能找到。

我第一次见到这种用法,有木有什么文档详细介绍这个的? C++主程序如何调用同一个工程的另一个源文件???


有函数前向声明,编译可以通过,但是,只有声明没有cpp文件中的实现,链接是不会通过的。

也许查阅一下“独立编译技术”,对你理解问题会更有帮助。

#4


引用 3 楼 mougaidong 的回复:
Quote: 引用 2 楼 Alie_AC 的回复:

Quote: 引用 1 楼 buyong 的回复:

头文件里有函数声明,编译链接时就能找到。

我第一次见到这种用法,有木有什么文档详细介绍这个的? C++主程序如何调用同一个工程的另一个源文件???


有函数前向声明,编译可以通过,但是,只有声明没有cpp文件中的实现,链接是不会通过的。

也许查阅一下“独立编译技术”,对你理解问题会更有帮助。

谢谢!