标签: include

#ifndef没有按预期工作

获取LNK2005"已在GUI.obj中定义"以获取PAL.h中的函数指针

//GUI.cpp
#include "PAL.h"

//PAL.h
#define PAL_INCLUDE
int (*addPAL)( int, void(*)(), void(*)() );

//main.cpp
#include "GUI.h"
#ifndef PAL_INCLUDE
#include "PAL.h"
#endif
Run Code Online (Sandbox Code Playgroud)

我误解了包含的本质#ifndef吗?

c++ include c-preprocessor

2
推荐指数
1
解决办法
5893
查看次数

fortran'call'vs'include'

我看到Fortran有'call'和'include'语句.两者有什么区别?.i文件类型有一些意义吗?

即:

include 'somefile.i'
call 'somesubroutine.f'
Run Code Online (Sandbox Code Playgroud)

谢谢!

fortran call include

2
推荐指数
1
解决办法
8522
查看次数

解析错误:语法错误,意外T_INCLUDE_ONCE

有问题的一行是:

include_once 'anotherpage.php';
Run Code Online (Sandbox Code Playgroud)

anotherpage.php是完整的,不知道问题是什么...也可以随意包含一个更好的调试PHP代码的方法,而不是每个小东西来人.谢谢!

php include

2
推荐指数
1
解决办法
8443
查看次数

在C++中的各种文件中包含更多次类

我有4个类:Server.cpp Logger.cpp Util.cpp Crypto.cpp

类Server使用对象Util.该程序工作正常,但现在我需要在Logger类中使用对象Util.但是当我输入代码#include"Util.cpp"时,g ++给我一个错误,因为我无法再次调用该对象.Eclipse告诉我关于类Util的"重新定义"和"先前声明".

我怎么解决这个问题?

c++ declaration include

2
推荐指数
1
解决办法
127
查看次数

C++ Object引用为对象的成员变量

我是C++的新手,我遇到了设置主体系结构的问题.我学会了如何在C#中使用这个特定的体系结构,但我无法在C++中使用它.我的问题如下:我有2个对象.我希望这些对象彼此"了解",所以我希望将这两个对象作为成员变量引用.

考虑一下:

//main.cpp:
#include "Object1.h"
#include "Object2.h"

Object1 *obj1;
Object2 *obj2;

...

obj1 = new Object1(obj2);
obj2 = new Object2(obj1);

...


//Object1.h

#ifndef OBJECT1_H
#define OBJECT1_H

#include "Object2.h"

class Object1 {
    public:
    Object1(Object2*);

    Object2 *obj;
}

#endif


//Object2.h

#ifndef OBJECT2_H
#define OBJECT2_H

#include "Object1.h"

class Object2 {
    public:
    Object2(Object1*);

    Object1 *obj;
}

#endif
Run Code Online (Sandbox Code Playgroud)

然而这是不可能的.因为如果没有ifndef的东西你就会有这种无休止的迭代,包括每个人的.h文件.但是对于ifndef,其中一个对象没有包含其他类定义,也不知道它应该创建什么对象.整个问题不会出现在C#中,因为您不必包含.h文件.你甚至没有.h文件:P.当你创建一个新类时,每个其他类都知道这个类的存在.但是在C++中,你必须包含特定类的.h才能生成这个类的对象(或者甚至是引用).

所以,我的问题是.如何将2个对象作为彼此的引用作为自己的成员变量?

感谢您的关注!

干杯,

Maxim Schoemaker

c++ object include header-files member-variables

2
推荐指数
1
解决办法
473
查看次数

是什么导致ld:重复的符号

ld:重复符号StringFunctions :: intToString(int)in

/Build/Intermediates/Y36PJC-mrvikmil.build/Debug/Y36PJC-mrvikmil.build/Objects-normal/x86_64/ServerSocket.o and 
/Build/Intermediates/Y36PJC-mrvikmil.build/Debug/Y36PJC-mrvikmil.build/Objects-normal/x86_64/main.o 
Run Code Online (Sandbox Code Playgroud)

对于架构x86_64

function StringFunctions :: intToString(int)StringFunctions.h中

包括来自main.cpp:

#include <iostream>
#include <string>
#include "Exception.h" //does not include anything more
#include "ServerConsole.h"
    /* 
       which includes ServerSocket.h which includes ClientSocket.h which includes StringFunctions.h
       AND
       ServerSocket.h includes SocketException.h which includes StringFunctions.h
    */
Run Code Online (Sandbox Code Playgroud)

包括来自ServerSocket.cpp:

#include <iostream>
#include <string>
#include "InvalidPortException.h" //does not include anything more
#include "SocketException.h" //which includes StringFunctions.h
#include "ClientSocket.h"    //which includes SocketException.h which includes StringFunctions.h
#include "StringFunctions.h" //StringFunctions.h

#include <sys/types.h>
#include …
Run Code Online (Sandbox Code Playgroud)

c++ include header-files ld

2
推荐指数
1
解决办法
969
查看次数

如何"取消包含"头文件?

我在文件中有一个类,AType.h它在AType.cpp中实现.

# include "PrivateType.h"

class AType{
    private:
    int a, b, c;
    PrivateType varX;

    public:
    ...
};
Run Code Online (Sandbox Code Playgroud)

我想在文件中使用类AType main.cpp,我需要包含AType.h,但我想避免包含PrivateType.h在main.cpp中.
我无法varX用malloc/new 创建.
main.cpp必须在编译时知道AType的大小.

目前的解决方案:(这很糟糕)

1 - 创建要打印的程序sizeof(AType).
2 - 更改标题:

# ifdef ATYPE_CPP
    # include "PrivateType.h"
#endif

class AType{
    private:
    # ifdef ATYPE_CPP
        int a, b, c;
        PrivateType varX;
    # else
        char data[ the size that was printed ];
    # endif

    public:
    ...
};
Run Code Online (Sandbox Code Playgroud)

3 - 而AType.cpp将从以下开始:

# define ATYPE_CPP …
Run Code Online (Sandbox Code Playgroud)

c c++ encapsulation include header-files

2
推荐指数
2
解决办法
6320
查看次数

PHP include_once将尾随1添加到页面

$num = 39; //sets number of weeks - there are only 38 rounds so 39 is fine
$num2 = $num-1; //for adding the previous weeks table - rest of code not added yet 

while($num > 0) // set to 0 so that when it reaches week 1 it stops
{
    if ( file_exists('./results/week'.$num.'.html'))  
    {
        echo '<h1>week '.$num.'</h1>';
        echo (include_once('./results/week'.$num.'.html'));
        $num = $num - 1;
    }
    else
    {
        $num = $num - 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

嗨,我正在尝试添加一些表(html文件)到一个页面,这个代码似乎工作,但它在每个表的末尾添加1,所以我得到:

Week 3
Name  Result
John …
Run Code Online (Sandbox Code Playgroud)

php include

2
推荐指数
1
解决办法
1295
查看次数

经典asp包含虚拟反斜杠在IIS7.5上不起作用(与斜杠一起使用)

我尝试在IIS7.5(Windows 2008 Server R2)上安装这个经典的asp应用程序.一切都有效,除了包含反斜杠的虚拟语句,例如

<! - #include virtual ="\ includes\file.inc" - >

即使在IIS中启用了"启用父路径",也不起作用.

如果我改变反斜杠()来斜杠(/),即工作

<! - #包括虚拟= "/包含/ file.inc" - >

这段代码已经工作了很长时间,我现在并不热衷于改变这种代码.是否有一些我可以设置的设置让它工作,所以我可以使用代码原样?

此致,Mathias

include asp-classic iis-7.5

2
推荐指数
1
解决办法
1482
查看次数

一线C程序包括?

现在我有这个

#include <zlib.h>
int main ()
{
    puts (ZLIB_VERSION);
}
Run Code Online (Sandbox Code Playgroud)

作为一个练习,有没有什么方法可以让它在一行上编译,比如

#include <zlib.h>; int main (){ puts (ZLIB_VERSION); }
Run Code Online (Sandbox Code Playgroud)

我可以让它在两行上编译,但是include阻止了一行.

c gcc include

2
推荐指数
1
解决办法
2015
查看次数