标签: nested-class

3
推荐指数
1
解决办法
1487
查看次数

我在我的嵌套类中在属性C#的set函数上遇到StackOverflowException错误

public class Class1
    {
        public Class1()
        {
            prop = new Class2();
        }
        public Class2 prop { get; set; }

        public class Class2
        {
            public Class2()
            {
                this.prop2 = "nikola";
            }

            public string prop2 { get { return prop2; } set { prop2 = EditString(value); } }

            public string EditString(string str)
            {
                str += " plavsic";
                return str;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的代码,我有问题.当我尝试初始化类型为Class1的对象时,它会抛出StackOverflowException错误.我究竟做错了什么?

c# stack-overflow nested-class

3
推荐指数
1
解决办法
191
查看次数

有一个类的std :: vector作为属性同一个类是一个很好的设计选择吗?

我的问题陈述如下.存在"域"的概念,其由许多"子域"组成.现在,这些子域本身就是域.以下是我可以做的事情的基本方法.我可以使用auto_ptr或其他东西,但现在暂时离开.

class Domain
{
private:
    Domain* subdomains;
}
Run Code Online (Sandbox Code Playgroud)

但是,我能够编译并运行以下程序,我认为它做了同样的事情并给了我想要的东西.

#include <iostream>
#include <vector>
#include <string>

class Domain
{
private:
    std::string name_;
public:
    std::vector<Domain> subdomains;
    Domain(std::string name) : name_(name) {};
    std::string name() {return name_;}
    void addSubDomain(std::string subDomainName);
};

void Domain::addSubDomain(std::string subDomainName)
{
    subdomain.push_back(Domain(subDomainName));
}

int main()
{
    std::cout<<"Hello, World"<<std::endl;
    Domain domain("wow");
    domain.addSubDomain("wow-child");
    std::cout<<"Domain name is "<<domain.name()<<std::endl;
    std::cout<<"Subdomain name is "<<domain.subdomain[0].name()<<std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我运行它的输出是

$./main 
Hello, World
Domain name is wow
Subdomain name is wow-child
Run Code Online (Sandbox Code Playgroud)

我的问题是,在实施以下内容时,我是否有任何陷阱?现在,我看不到任何东西.如果没有陷阱,那么这对我的问题来说是一个非常好的解决方案.

编辑

如果这不是一个解决方案,那么还有另一个我可以使用的解决方案,它不涉及原始指针的管理吗?

c++ nested-class stdvector

3
推荐指数
1
解决办法
1009
查看次数

C++的朋友,覆盖嵌套类的功能

我想从朋友(+子)类覆盖嵌套类中的虚函数.这怎么可能?这是我尝试过的:

class Parent {
  friend class Child;
  class Nested {
    public: virtual void nestedfunc() {std::cout << "one";}
  }
};
class Child : Parent {
  void Child::Nested::nestedfun() {std::cout << "two";}
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

error: cannot define member function 'Parent::Nested::nestedfunc' within 'Child'
Run Code Online (Sandbox Code Playgroud)

(没有"Child ::"的相同错误)

c++ overriding friend nested-class

3
推荐指数
1
解决办法
2856
查看次数

在Python中嵌套3个类时语法错误了吗?

是否有一种简单的方法可以在保持所有3个级别的同时修复此错误?

从对象派生ClassA没有帮助.

提前致谢!

>>> class classA:
...     class classB(object):
...         def __init__(self):
...             self.b = 3
...         class classC(classA.classB):
...             def __init__(self):
...                 super(classC, self).__init__()
...                 self.c = 4
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in classA
  File "<stdin>", line 5, in classB
NameError: name 'classA' is not defined
Run Code Online (Sandbox Code Playgroud)

python syntax nested-class

3
推荐指数
1
解决办法
92
查看次数

C#中的嵌套类

我正在尝试研究c#中的嵌套类.在阅读了许多文档和goggling之后,我还不清楚何时使用嵌套类.但据我所知,我做了一个小样本程序.我在下面粘贴我的代码.这个嵌套类程序是否以正确的逻辑实现?.实际上嵌套类用于什么?而且我对这个程序有疑问,我在程序中指出了这个疑问.请帮我 ...

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        Bank bankObj = new Bank();
        bankObj.CreateAccount();
        bankObj.ShowMyAccountNumber();
    }
}

class Bank
{
    static int accountNumber; //  here if I just declare this as int accountNumber without static it showing an error in the CreatePersonalAccount(int accNo) method's first line ie accountNumber = accNo; as "Cannot access a non-static member of outer type." What actually this error mean ?

    public class BankAccountSection
    {
        public bool CreatePersonalAccount(int accNo)
        {
            accountNumber …
Run Code Online (Sandbox Code Playgroud)

c# nested-class

3
推荐指数
1
解决办法
4255
查看次数

在类外写的嵌套类

我喜欢使用私有嵌套类,除了它们总是感觉如此混乱.通常我把它们放在自己的中#region,但是我希望它们在位置方面与它们的父类分开,而且我也不希望它们在单独的文件中.我决定做的是让他们的父类成为局部,然后将子类放在文件中父类的下面.

不幸的是,似乎每个文件都不能有多个部分类定义.

(编辑:事实证明,每个文件可以有多个部分部分;它只是表单设计者不喜欢它.)

我真正想做的是(所有在一个文件中):

internal class Parent
{
}

private class Parent.Child1
{
}

private class Parent.Child2
{
}
Run Code Online (Sandbox Code Playgroud)

但似乎我所能做的就是为每个新的子类生成一个新的源文件,或者像这样安排它们:

internal class Parent
{
   private class Child1
   {
   }

   private class Child2
   {
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法完成我在这里要做的事情?

c# partial-classes nested-class

3
推荐指数
1
解决办法
2688
查看次数

C# - 缩短函数调用

我有一个.dll文件,我在其他程序中调用函数,但调用单个函数最终看起来像这样:

例:

KeySim.KeySim.Basic.KEY_E();
Run Code Online (Sandbox Code Playgroud)

当程序停止工作时,我无法修改类的嵌套.我想知道是否还有其他方法来缩短调用函数的代码

注意:

Keysim是命名空间,Keysim是主类,Basic是嵌套类

c# class function call nested-class

3
推荐指数
1
解决办法
648
查看次数

如何从具有相同名称的嵌套类型的类中引用全局类型?

我有一个在全局范围内声明的类,另一个具有相同名称的类嵌套在某个类中.

class Address {
    var someProperty: String?
}

class ThirdPartyAPI {
    class Address {
        var someOtherProperty: String?
        init(fromAddress address: Address) {
            self.someOtherProperty = address.someProperty
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是:如何从初始化中引用全局类而不是内部类?在给出的示例中,我遇到了错误Value of type 'ThirdPartyAPI.Address' has no member 'someProperty',这意味着编译器引用内部Address而不是全局内部.

scope nested-class scoping swift swift2

3
推荐指数
1
解决办法
322
查看次数

std :: vector <Bar>作为类Foo中的成员变量需要Bar的空构造函数

情况如下:

我有一个由以下文件定义的类.

Foo.h文件:

template<typename MyType>
class Foo
{
public:
    Foo(int number = 50);

private:
    typedef enum {VAR1, VAR2} Type;

    class Bar
    {
        MyType a;
        Type b;

        Bar(int param1, Type param2) : a(param1), b(param2) {}
    }

    std::vector<Bar> vec;
};
Run Code Online (Sandbox Code Playgroud)

Foo.cpp文件:

template<typename MyType>
Foo::Foo(int number) : vec(number)
{ }
Run Code Online (Sandbox Code Playgroud)

问题是当我编译它时,我在.cpp文件的第一行收到错误,说它需要一个没有参数的Bar的构造函数.我想它需要它在Foo中创建矢量.我为Bar添加了一个没有参数的构造函数,给出了以下.h文件:

template<typename MyType>
class Foo
{
public:
    Foo(int number = 50);

private:
    typedef enum {VAR1, VAR2} Type;

    class Bar
    {
        MyType a;
        Type b;

        Bar() {}   // <----  Line added
        Bar(int param1, Type …
Run Code Online (Sandbox Code Playgroud)

c++ enums class vector nested-class

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