标签: definition

声明没有指针的默认参数循环引用?

有没有办法在没有间接的头文件中声明这些类?

// Forwards declaration of B
class B;

class A
{
public:
    // Default parameter referring to B.  May return its parameter
    const B& func(const B& b = B());
};

class B
{
public:
    // B ctors
    B() {}
    B(const B&) {}

    // B has A as a member
    A a;
};
Run Code Online (Sandbox Code Playgroud)

Visual C++ 2008告诉我这个:

error C2514: 'B' : class has no constructors
Run Code Online (Sandbox Code Playgroud)

并指出B的前向声明("B类;"),显然不能在下面看到B的构造函数.A不能跟随B,因为B包含A作为成员.

如果必须使用间接,那么最好的方法是什么?也许在C++ 0x B中A可能是unique_ptr成员?或者也许有一个提升类纯粹是为了回避这个问题?

c++ header definition circular-reference

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

什么是"谷物"包装文件中提到的"隔离原始"?

Haskell存储库中有大量独特的单词集合,(非常轻微的夸张).无论如何,今天的术语是孤立的原始.什么是隔离原语?它与非隔离原语相比如何?不幸的是,我没有足够的背景来了解Haskell的大部分说法,谷歌对此并没有多大帮助.

我熟悉的命名法将原定义为没有超类型的类型,我从未在任何地方看到过isolate作为前缀.

primitive haskell definition

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

C++方法声明,类定义问题

我有两个类:A和B.类A的一些方法需要使用类B而相反(类B有需要使用类A的方法).

所以我有:

class A;

class B {

   method1(A a) {
   }

}

class A {

   method1(B b) {
   }

   void foo() {
   }
}
Run Code Online (Sandbox Code Playgroud)

一切正常.

但是当我尝试从B :: method1调用类A的foo()时:

class B {

   method1(A a) {
      a.foo();
   }

}
Run Code Online (Sandbox Code Playgroud)

我得到的结果是前向声明的编译错误和 不完整类型的使用.但为什么会这样呢?(我在使用之前已经宣布了A级?)

c++ declaration definition forward-declaration

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

Java有一个isSomething()库吗?

我想知道是否有一个Java的LIB与像实现:isTemperature(),isPercentual(),isDistanceUnit(),isWeightUnit(),isProperName(),isDate(),isYear(),isPhone(),isLocation(),什么更可以定义.

不仅单位是我的兴趣,而且所有类型的分类都可以做,可以是数字或单词.

这将用于对文本中的单词进行分类.

java definition

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

方法定义中的变量名必须与C++中的声明名相同吗?

现在,我并不是说我认为这可以接近正确的编码实践(假设它甚至可能); 这个问题源于凌晨2点的错误:假设类定义类似于以下内容:

class myClass
{
public:
    void myMethod(const int & name);
}
Run Code Online (Sandbox Code Playgroud)

和定义:

void myClass::myMethod(const int & altName)
{
    //manipulate altName
}
Run Code Online (Sandbox Code Playgroud)

请注意,声明和定义的参数都是const int&类型,唯一的区别是变量名称.我知道这不会(在Visual Studio 2012中)抛出编译器错误或警告,但是在运行程序时是否会导致错误?

谢谢!

c++ class declaration definition language-lawyer

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

内联值的定义

浏览x86汇编语言参考手册时,我遇到了一个立即操作数的定义:

操作数可以是立即的(即,评估为内联值的常量表达式),[...]

如果我正确地得到它,表达式返回一个值.难道一个常量表达式,然后返回一个恒定值?内联值是否意味着在经历了汇编过程后它会被其他一些值替换?

assembly definition inline-code

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

我在哪里定义内部结构静态对象?看来我做不到

我知道我必须在全局范围/命名空间中的类之外定义一个静态类成员,否则编译器会抱怨缺少符号.所以在下面我无法定义内部结构:

struct MyStruct
{
    struct MyInnerStruct
    {
        int notimportant1, notimportant2;
    };
    static MyInnerStruct object1;
};

int main(void)
{
    MyStruct foo;
    foo.object1.notimportant1 = 5;  // Unresolved external symbol, I expected this to happen

    return 0;
}

MyInnerStruct MyStruct::object1;    // Typical definition of a static member
                                    // MyInnerStruct is underlined, saying it's undefined
Run Code Online (Sandbox Code Playgroud)

我也尝试了一个前面的声明,但它说了一些重新定义.其实我也想知道,这必须重新定义每一个

c++ static class definition

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

如何在Python中显示类的定义

我正在经历这个问题:如何在python中返回类的定义?

但是我无法显示类定义.我收到以下错误:

>>> class A:
...     pass
...
>>> import inspect
>>> source_text = inspect.getsource(A)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\**\Python\Python36\lib\inspect.py", line 968, in getsource
    lines, lnum = getsourcelines(object)
  File "C:\Users\**\Python\Python36\lib\inspect.py", line 955, in getsourcelines
    lines, lnum = findsource(object)
  File "C:\Users\**\Python\Python36\lib\inspect.py", line 768, in findsource
    file = getsourcefile(object)
  File "C:\Users\**\Python\Python36\lib\inspect.py", line 684, in getsourcefile
    filename = getfile(object)
  File "C:\Users\**\Python\Python36\lib\inspect.py", line 654, in getfile
    raise TypeError('{!r} is a built-in class'.format(object))
TypeError: <module '__main__' …
Run Code Online (Sandbox Code Playgroud)

python class definition

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

在c中定义功能和打印

我试图定义预定义的功能,它给了我错误...下面的编程有什么问题.有人告诉我,我可以定义预定义的功能.我知道这不正确,但我仍在张贴......如果有人有......

#include <stdio.h>
#include <stdlib.h>
#define scanf "%s abc";

int main()
 {
  printf(scanf,scanf); 
   return 0;
  }
Run Code Online (Sandbox Code Playgroud)

c compiler-errors definition

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

变量/函数可以声明多次,但只能定义一次

变量/函数可以声明多次,但只能定义一次。这实际上是什么意思?

我试图了解有关在线编译器的声明,但我期望显示错误,但事实并非如此。

#include <stdio.h>
int x=10;

int main() {
    x=20;
    x=30;

    printf("%d",x);
}
Run Code Online (Sandbox Code Playgroud)

预期的输出:因为我已经定义了变量x并分配了三个不同的值10、20、30,所以我希望显示错误。这个概念说您可以声明变量多次,但只能定义一次,因为不能将两个不同的位置赋给同一变量实际输出:30

c variables declaration definition

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