标签: declaration

c ++标题多个变量指针包含

我遇到了这样的问题:

我有一个头文件:

//first variant:  
#ifndef LIBRARIES_H
#define LIBRARIES_H
 const char a='4';    
 #endif // LIBRARIES_H
Run Code Online (Sandbox Code Playgroud)

我将它包含在几个.cpp文件中.一切都很完美.

但突然间,如果我宣布一个指针:

//second variant:
#ifndef LIBRARIES_H
  #define LIBRARIES_H
 const char *a="asdfgh";
 #endif // LIBRARIES_H
Run Code Online (Sandbox Code Playgroud)

请注意,我只声明其中一个(变种).
我只宣告了一次(我试图更改sadfgh或asdfg的名称).

当我尝试第二个变体时,我先删除,反之亦然.

如果我声明一个指向字符串的指针,我将得到错误"多次包含变量".我用qt编译它.我已经删除并重新编译了几次项目. 在此输入图像描述

当然,我可以在main()函数中定义它,但我想知道,这个问题的原因是什么?为什么我不能在头文件中声明指针,然后将它包含在几个源代码文件中?

c++ pointers declaration global-variables include

0
推荐指数
1
解决办法
528
查看次数

在某些变量初始化中,"l"是什么意思 - C++

在一些变量初始化中"l"的含义是什么?例如:

#define maxpossible     (1000000000L)
double A = 1L;
double B = 999999999l;
Run Code Online (Sandbox Code Playgroud)

"L"和"l"之间有区别吗?

c++ variables initialization declaration long-integer

0
推荐指数
1
解决办法
1170
查看次数

是否可以强制执行局部变量的声明?

我已经定义了一个局部变量

 local tSuppressLines
Run Code Online (Sandbox Code Playgroud)

我想确保检查局部变量,以便我有一个错字

   if  not tSuppessLines  then
      -- do something
   end if
Run Code Online (Sandbox Code Playgroud)

我收到警告

variables declaration livecode

0
推荐指数
1
解决办法
66
查看次数

在声明之前使用变量

我正在写一个Python脚本,我有一个变量声明的问题,这是我的脚本的一部分:

if chromosome :
    if chromosome.group(1) != '1' :
        output.close()
        print str(base)+" bases found in chromosome "+chr_name
        chr_name = chromosome.group(1)
    output = open(current_dir+"/"+name+"3/"+name+".chr"+chromosome.group(1)+".wig", "w")
    output.write("fixedStep chrom=chr"+chromosome.group(1)+" start=1 step=1\n")
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我在关闭输出之前在代码中创建它,但事实上,这种情况永远不会发生,因为您无法在创建文件之前输入条件.

我可以做一些脏东西,在我的条件之前打开一个tmp文件,但那不是很优雅.所以我想知道是否有另一种解决方案让Python开心?

编辑:

if chromosome :
    if chromosome.group(1) != '1' :
        print str(base)+" bases found in chromosome "+chr_name
        chr_name = chromosome.group(1)
    with open(current_dir+"/"+name+"3/"+name+".chr"+chromosome.group(1)+".wig") as output:
        output.write("fixedStep chrom=chr"+chromosome.group(1)+" start=1 step=1\n")
Run Code Online (Sandbox Code Playgroud)

EDIT2:

这是算法的概念,也许它可以帮助更好地理解问题:

for line in input do :
     chromosome = re.search(something)
     if chromosome :
          if chromosome != '1' :
              ouput.close()
          output = open(file+chromosome) …
Run Code Online (Sandbox Code Playgroud)

python declaration conditional-statements

0
推荐指数
1
解决办法
143
查看次数

初始化私有静态变量c ++

我想创建一个只包含一个sql :: Connection指针的Connector类.我的尝试是构建一个单例类,并使指针和构造函数本身私有.只有一个静态函数是公共的,允许创建连接.

我尝试使用

Connector::conn = 0;
Run Code Online (Sandbox Code Playgroud)

在实现模块中失败,因为conn是私有的,不能从外部访问.

如果我省略initiliziation我得到一个未定义的引用错误

Connector.h

#ifndef CONNECTOR_H
#define CONNECTOR_H

#include <cppconn/driver.h>
#include <cppconn/exception.h>

class Connector {

public:
    static sql::Connection* getConnection();


protected:
    Connector();
    Connector(const Connector& other) { }

    static sql::Connection * conn;
    static sql::Driver * drive;
};

#endif  /* CONNECTOR_H */
Run Code Online (Sandbox Code Playgroud)

Connector.cpp

#include "Connector.h"

Connector::Connector() {
}

sql::Connection * Connector::getConnection() {
    if(Connector::conn == 0) {
        Connector::drive = get_driver_instance();
        Connector::conn = Connector::drive->connect("tcp://any.de:3306", "any", "any");
        Connector::conn->setSchema("cryptoTool");
    }
    return Connector::conn;
}
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors initialization declaration

0
推荐指数
1
解决办法
183
查看次数

Python处理未声明的变量

在Python中,可以避免变量(预)声明以避免NameError:名称'c'未定义:

a=5
if a==7:
    c=10
if c: print c
Run Code Online (Sandbox Code Playgroud)

在最后一行,如果c:只是验证变量' c '是否不是None.什么可用于检查'c'变量是否存在(或预先声明)?

python variables declaration

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

错误:存储类说明符对参数声明无效

当我编译我的Linux程序时,我收到此错误:

error: storage class specifiers invalid for parameter declarations
Run Code Online (Sandbox Code Playgroud)

这只发生在Linux上,因为它可以很好地编译Windows.代码行是:

int Start(static const char* m_vertexshader, static const char* m_fragmentshader);
Run Code Online (Sandbox Code Playgroud)

如果您需要任何细节或信息,请使用GNU C编译器(g ++)

c++ linux gnu declaration codeblocks

0
推荐指数
1
解决办法
3258
查看次数

将头文件中的变量声明为指针和非指针之间的差异

将头文件中的变量声明为指针或非指针之间有什么区别?我不确定我是否正确理解这些差异.

例如

class MyClass {

private:
    MyOtherClass* moc; // pointer
    MyOtherClass moc2; // no pointer
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,在将变量声明为指针时,我已经提出了以下优点/缺点.

好处:

  • 延迟实例化(没有立即创建对象)
  • 变量存在于堆上,远远大于堆栈
  • 不仅可以使用默认构造函数

缺点:

  • 必须在析构函数中手动删除(顺便说一句.何时这样的非指针变量被破坏?当程序结束?)

还有什么可说的?

c++ variables pointers declaration header-files

0
推荐指数
1
解决办法
997
查看次数

C中char指针的行为

我正在以下列格式从文件中读取字符串:N // string的长度abcdef //长度为N的字符串

像那样:

char necklace[400];
fin = fopen("file.in", "r");
fscanf(fin, "%d %s", &N, necklace);
char* left = &necklace[0];
char* right = &necklace[N-1];
Run Code Online (Sandbox Code Playgroud)

但是,当我char*在使用它们之前声明它时,它会给我编译错误:

char necklace[400];
char* left, right;   // this causes the problem

fin = fopen("file.in", "r");
fscanf(fin, "%d %s", &N, necklace);

left = &necklace[0];
right = &necklace[N-1];
Run Code Online (Sandbox Code Playgroud)

你能告诉我这个行为吗?

c pointers declaration char

0
推荐指数
1
解决办法
54
查看次数

一行和两行声明之间的区别?

在C++中,它们之间是否有任何区别

Object o;
o = Object(); // calling the class constructor
Run Code Online (Sandbox Code Playgroud)

Object o = Object(); // one-line declaration and construction
Run Code Online (Sandbox Code Playgroud)

在Java等其他语言中它是一样的吗?(除了语法)

c++ declaration

0
推荐指数
1
解决办法
102
查看次数