标签: class

朋友类概念不需要如何申报?

我刚刚学会了friend classC++中的概念(我已经搜索了一下,但这个答案让我笑到我记得最重要的部分),而我正试图把它融入项目中我是现在正在努力.这个简明的问题最终被挑出来了,但总的来说,我对我工作代码中完全缺乏前向声明感到困惑.

我的所有类都通过(子)文件夹分隔,每个文件夹分别放在一个单独的.h.cpp文件中,但这应该足以让人产生依赖关系:

// FE.h - no implementations - no .cpp file
class FE
{
    private:
       virtual void somePrivateFunc() = 0;
    // 90% virtual class, interface for further implementations
    friend class TLS;
};

// DummyFE.h
#include "FE.h"
class DummyFE :: public FE {
    /* singleton dummy */
    private:
        // constructor
    public:
        static DummyFE& instance();
};
// DummyFE.cpp
#include "DummyFE.h"
// all Dummy FE implementation

// ImplFE.h
#include "FE.h"
class ImplFE …
Run Code Online (Sandbox Code Playgroud)

c++ class forward-declaration friend-class

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

如何循环类中的所有属性

我在我的Delphi应用程序中有一个类,我想要一种简单而动态的方法将所有字符串属性重置为'',并将所有布尔属性重置为False就我在网上看到的那样,应该可以创建一个循环某种形式,但如何做到这一点对我来说并不清楚.

delphi properties class rtti delphi-xe

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

在std命名空间中转发变量/类的声明

如果我有一个不需要在.hpp文件中完整定义的类,我通常主要使用前向声明

例)

 //B.hpp

 namespace A_file {
   class A;
 }

 namespace B_file {

  class B {
   public:
        B();
   private:
        A *ptr_to_A;
  }
 }

 //B.cpp

 #include "A.hpp"
 using namespace A_file;

 namespace B_file {

   B(int value_) {
        *ptr_to_A = new A(value_);
   }

   int some_func() {
        ptr_to_A->some_func_in_A();
   }
 }
Run Code Online (Sandbox Code Playgroud)

我写这种代码.我想,它将再次包括整个hpp.(随意评论,如果你的事情,这是不健康的)

有没有办法可以对std命名空间中的对象/类做同样的事情?如果有办法,可以,还是有副作用?

c++ class std forward-declaration

11
推荐指数
1
解决办法
4543
查看次数

iPhone iOS如何将Class对象与另一个类对象进行比较?

我在其中一个类中定义了类引用:

Class _objectClass;

     if([self.objectClass isSubclassOfClass:[NSManagedObject class]])
        {
           //does not get called
        }
Run Code Online (Sandbox Code Playgroud)

我该如何检查Class我正在处理什么?

更新:抱歉自动完成没有告诉我isKindOfClass:可用.我现在正在测试

iphone class objective-c ios

11
推荐指数
1
解决办法
1万
查看次数

从子类实例访问父类实例属性?

如何在此代码示例中从"child"访问"myvar":

class Parent():
    def __init__(self):
        self.myvar = 1

class Child(Parent):
    def __init__(self):
        Parent.__init__(self)

        # this won't work
        Parent.myvar

child = Child()
Run Code Online (Sandbox Code Playgroud)

python class parent instance

11
推荐指数
3
解决办法
3万
查看次数

创建不同对象的实例列表

我想创建一个不同类实例的arraylist.如何在不定义类类型的情况下创建列表?(<Employee>)

List<Employee> employees = new ArrayList<Employee>();
employees.add(new Employee());
Employee employee = employees.get(0);
Run Code Online (Sandbox Code Playgroud)

java arrays class arraylist object

11
推荐指数
2
解决办法
12万
查看次数

Kotlin中另一个类内的密封类无法编译:无法访问'<init>'它是私有的

如果我使用了文档中的示例,

class SomeActivity : AppCompatActivity() {
    sealed class Expr
    data class Const(val number: Double) : Expr()
    data class Sum(val e1: Expr, val e2: Expr) : Expr()
    object NotANumber : Expr()
}
Run Code Online (Sandbox Code Playgroud)

它没有编译,错误:

Cannot access '<init>', it is private in 'Expr'.
Run Code Online (Sandbox Code Playgroud)

但是,将它移到封闭类之外会使其编译:

sealed class Expr
data class Const(val number: Double) : Expr()
data class Sum(val e1: Expr, val e2: Expr) : Expr()
object NotANumber : Expr()

class SomeActivity : AppCompatActivity() {
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?这是预期的行为吗?文档似乎没有提到这一点.

class sealed kotlin

11
推荐指数
1
解决办法
3673
查看次数

为什么`function`不是Python中的关键字?

str或等的类type

>>> type("pear")
<class 'str'>
>>> type(str)
<class 'type'>
Run Code Online (Sandbox Code Playgroud)

可以在Python中访问:

>>> str
<class 'str'>
>>> type
<class 'type'>
Run Code Online (Sandbox Code Playgroud)

然而,类functionbuiltin_function_or_method不.

>>> def foo(): pass
... 
>>> type(foo)
<class 'function'>
>>> type(print)
<class 'builtin_function_or_method'>
Run Code Online (Sandbox Code Playgroud)

它们显示为内置类但尝试访问它们会引发名称错误:

>>> function
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'function' is not defined
>>> builtin_function_or_method
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'builtin_function_or_method' is not defined
Run Code Online (Sandbox Code Playgroud)

有什么特别的function …

python class built-in

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

给定一个节点,刻录整个二叉树需要多长时间?

我在一次模拟采访中遇到了一个问题,我必须找到一个二进制树在一个给定节点已经着火后完全烧毁多久.

"从一个叶子节点开始刻录二进制树.从一个节点到另一个节点刻录的时间是多少?整个树被烧毁的时间是什么?火将从一个节点传播到所有路径. "

假设你有一棵这样的树,其中N是着火的节点.这发生在第一秒,其中秒是s,所以在第0秒:

           1
       /       \
      1          1
    /  \          \
   1    1          1
      /   \         \
     1     N         1
                      \
                       1
Run Code Online (Sandbox Code Playgroud)

经过一秒钟后,将使用更多刻录的节点更新树.下一秒(s + 1)的示例将如下所示:

           1
       /       \
      1          1
    /  \          \
   1    N          1
      /   \         \
     1     N         1
                      \
                       1
Run Code Online (Sandbox Code Playgroud)

下一秒(s + 2)的示例将是这样的:

           1
       /       \
      N          1
    /  \          \
   1    N          1
      /   \         \
     N     N         1
                      \
                       1  
Run Code Online (Sandbox Code Playgroud)

现在在第三秒(s + 3)将是这样的:

           N
       /       \
      N          1
    /  \          \
   N    N …
Run Code Online (Sandbox Code Playgroud)

algorithm recursion binary-tree class python-3.x

11
推荐指数
1
解决办法
3475
查看次数

从Java程序中获取任何类的源代码

我正在尝试从Java程序中检索任何类(如果可用)的源代码以进行调试.假设我有Class[_]我想要检索源代码的参考.

我到目前为止所做的尝试 - 在Scala中:

val clazz = classOf[ClassDefinedInSeparateFile]

  1. clazz.getProtectionDomain.getCodeSource.getLocation.toString + "/" + clazz.getPackage.getName.replaceAll("\\.","/") + "/" + clazz.getSimpleName + ".scala"- 看起来没问题,JAR在那里并包含.scala文件,但无法打开使用Source.fromFile(...).
  2. "/" + clazz.getPackage.getName.replaceAll("\\.","/") + "/" + clazz.getSimpleName + ".scala" - 看起来不错,但无法打开使用 Source.fromInputStream(...)

备注:

  • 生产或登台环境中没有可用的IDE.
  • 在我们的设置中,JAR包含源代码.java.scala文件,因此不需要反编译器.(至少对于应用程序的源代码,而不是依赖项.如果应用程序源代码可以访问代码段,那就足够了 - 大多数异常都会在应用程序级别捕获并在那里相关.)

谢谢.

java scala jar class

11
推荐指数
1
解决办法
1461
查看次数