我正在处理一个我不知道该如何解决的问题。我正在使用ASP.NET样板,并一直遵循本指南及其来源到T:
我在构建我的第一个存储库时遇到了问题。它给了我以下错误:错误1
'Test.EntityFramework.Repositories.TestRepositoryBase‘不包含接受0参数的构造函数。
这是储藏室:
public class UserInfoRepository : TestRepositoryBase<UserInfo, Guid>, IUserInfoRepository
{
}
而基地:
public abstract class TestR
当我试图用一种常见的方式--使用虚拟继承--来“解决”通常的钻石问题时,出现了一个奇怪的问题:
A
/ \* both virtual
B C
\ /
D
然而,我的基类A没有默认构造函数,所以我从D手动调用它。然而,当我试图将一个类E添加到这个菱形中作为C继承时
A
/ \* both virtual
B C
\ / \
D E
仍然需要在E构造函数中手动调用A的构造函数,即C不需要从E创建A,即使没有多重继承也没有钻石A-C-E。
class A
{public:
A (int _N): N(
考虑以下情况:
#include <iostream>
using namespace std;
class A {
public:
int y;
A(int &x) {
x = 2;
y = 1;
}
};
class B : public A {
public:
int *p;
B(int t) : A(*p) {}
};
int main() {
B b(2);
return 0;
}
当调用B的构造函数时,p具有一个垃圾值。所以,当*p被传递给A()时,它给了我一个
我有一个基类:
public class Base {
public string Foo { get; set; }
public float Bar { get; set; }
public float Foobar { get; set; }
public Base (string foo, float bar, float foobar) {
Foo = foo;
Bar = bar;
Foobar = foobar;
}
}
当我试图添加一个扩展以下内容的类时,我会得到一个错误:
public class Derived :
好的,这不是一个简单的问题,代码可以帮助我解释这个问题。
我需要的是获得自引用、泛型类、静态构造函数中的类类型的方法。
假设您有这样的代码:
public class ClassA : BaseClass<ClassA>{
}
public abstract class BaseClass<T> where T : BaseClass<T> {
static readonly int _aValue;
static BaseClass(){
//here i have code that load _avalue for eac
这就是代码,并出现错误:“非法成员初始化:'a‘不是基或成员”,错误信息的含义是什么,为什么?
class A{
public:
int a;
};
class B:public A{
public:
B();
};
B::B():a(10){ // put "a(10)" into the constructor body is right
}
我在每个文件中有两个文件和一个基类。我想让派生类中的一些函数使用基类中的数据成员。我所面对的问题与以下所提出的问题非常相似:
文件BaseFile.h
class Base{
private:
int a, b;
protected:
//some data members and functions that I want to share with derived class
public:
Base(int apple, int ball):apple(a), ball(b) {}
};
文件派生文件h
#include "BaseFile.h"
class Derive
我想知道,在这种情况下,在抽象类的构造函数中调用公共方法(尤其是受保护的方法)是否可以,或者至少是可以原谅的,因为有足够的文档说明该方法的意图。
我的实际问题涉及一个抽象类IdentifiedConnection,如下所示:
public abstract class IdentifiedConnection extends Connection {
private UUID uuid;
public IdentifiedConnection(String serverAddress, int port) throws IOException {
super
我们不能复制派生类对象,当基类的复制构造函数是私有的,但当我们在派生类中编写自己的复制构造函数时,我们可以复制对象,为什么?
#include <iostream>
class base
{
public:
base()
{
}
private:
base(const base &x)
{
std::cout << "copy constructor of base class";
}
};
class derived : public base
{
public:
der
你好,我正在尝试初始化一个名为Amount的属性,同时尝试合并继承的类。当我拥有该属性的构造函数时,我的所有派生类都会抛出错误。当我删除应用程序中的构造函数时,所有的错误都消失了。这样做对吗?我需要我的财产的构造函数吗?我的代码在下面,任何建议都是非常感谢的。
class Account
{
public long Amount { get; set; }
public Account(long amount)
{
Amount = amount;
}
}
class Banking : Account
{
}
class Savings
我有一个基类"B",它有两个构造函数,一个没有参数,另一个接受一个参数,一个整数。
我有一个子类"S",它继承自"B“,没有在其中定义任何构造函数。
我创建了一个S的实例,试图将一个整数传递给构造函数。
我知道错误:
Error 1 Too many arguments to 'Public Sub New()“
这让我感到惊讶,因为我认为如果没有在子类S中定义构造函数,那么基类构造函数方法,特别是带有单个整数param的构造函数方法,将被调用w/o,这是一个错误。
你知道我为什么会犯这个错误吗?建筑工人是个特例吗?
因此,作为我的程序的公共API的一部分,我公开了类D,这样用户就可以从类D继承来创建自己的类。
然而,D类是致命钻石的尖端,我遇到了一个问题,用户的类正在调用类A的默认构造函数,而不是所需的参数化构造函数。
A
/ \
B C
\ /
D
|
E or F
在下面的代码中,E类是一个干净的API,但是调用错误的A构造函数。类F按预期工作,但是用户必须添加A的参数化构造函数,这很难看,因为该类是内部类。
是否有办法使E类工作按预期进行?为什么会发生这种情况?
#include<iostream>
using namespace std;
class A {
pub
什么是省道颤振中的零参数构造函数?
在创建“颤振”框时,我收到以下错误
The superclass 'Bloc<QuoteEvent, QuoteState>' doesn't have a zero argument constructor.
Try declaring a zero argument constructor in 'Bloc<QuoteEvent, QuoteState>', or explicitly invoking a different constructor in 'Bloc<Qu
嗨,我有两个类,一个叫做指令,一个叫做LDI,它继承自指令类。
class Instruction{
protected:
string name;
int value;
public:
Instruction(string _name, int _value){ //constructor
name = _name;
value = _value;
}
~Instruction(){}
Instruction (const Instruction &rhs){
name = r
我正试图完成上一个问题中描述的同样的事情:
但是,我真正的问题是:
如果f()是基类中的构造函数,怎么办?哪个g()将被调用?我不知道我是否做错了,但在我的程序中,情况似乎正好相反。
从前面的问题中提取相同的变量,一个代码显示如下
行为将如下所示:
Class Base
{
Base(){g();};
virtual void g(){//Do some Base related code;}
};
Class Derived : public Base
{
Derived(){};
virtual void g(){//Do
我有一个关于C++行为的小问题。当我尝试使用派生类的构造函数初始化列表来初始化基类的数据成员时,我得到了一个错误。但是,如果我在派生类构造函数中初始化,或者如果我使用派生类成员初始化列表中的参数调用基类构造函数,则不会出现错误。所以问题是为什么我在第三种情况下会出错。
class A {
protected:
int data;
public:
A(int i = 0) : data(i) {}
};
class B : public A {
public:
B(int i = 0) { data = i; } /* works fine, initializing insi
我有一个asbtract类的例子。另一个泛型类UsesExample使用它作为约束,带有一个新的()约束。稍后,我创建了示例类ExampleChild的子类,并将其与泛型类一起使用。但不知何故,当泛型类中的代码试图创建新副本时,它调用的不是子类中的构造函数,而是父类中的构造函数。为什么会发生这种情况?代码如下:
abstract class Example {
public Example() {
throw new NotImplementedException ("You must implement it in the subclass!");
在java和C++中,从构造函数调用被覆盖的方法是不同的。有人能解释一下为什么他们的派单方法不同吗?
我知道C++和Java的设计和发展是不同的。但是当涉及到从构造函数调用可重写的方法时,任何对语言规范为什么故意这样设计的洞察都会有所帮助。
我做这项调查的动机是ErrorProne检查:
下面是返回1的java代码
class Ideone
{
static class Simple {
public int i;
Simple() {
this.i = func();
}
public int f
我在C++中使用虚函数时遇到了一些问题,我可能在构造函数中误用了它们。问题是,当将一个组件库(由我编写)链接到我的最终可执行文件中时,一个虚函数被标记为未定义,即使我已经为它编写了一个实现并链接了它。
我有以下类:
template<class BufferType, class ConnectionType, class HandlerType>
class UdpConnection
{
public:
UdpConnection(size_t dispatchCount) : service(),
listener(service),
pool
这些问题非常直截了当,在我的任何准备中都找不到答案。在基类中未实例化基类时,派生对象实例化时,基类的共享成员如何反应?共享构造函数是否在基级被调用?如果基类没有实例化,那么在基类中定义的方法中的基类初始化一组共享成员时,如果基类没有实例化,那么给定适当的访问器,shared new()类是否可以访问共享构造函数?
Public Class Car
Protected Shared _carCount as Integer
Shared Sub New()
_carCount = 0
End Sub
Shared Public Function GetC
我已经创建了一个类,并且使用该类传递了构造函数,然后我创建了该类的抽象类,但是当我想从继承类中获取抽象类的1个属性时,它会显示一些错误,不能接受参数0
public class Device1
{
public int dwMachineNumber;
public int dwBaudrate;
public int dwCommPort;
public string dwIPAddress;
public int dwPort;
public int dwPassWord;
public Device1(int dwMachineN
我通过删除一些空的构造函数使我的构造函数更加严格。我对继承非常陌生,并且对我得到的错误感到困惑:基类不包含无参数构造函数。在A中没有空构造函数的情况下,如何才能使A2从A继承?另外,就我个人的理解而言,为什么A2需要A的空构造函数?
Class A{
//No empty constructor for A
//Blah blah blah...
}
Class A2 : A{
//The error appears here
}
我有个家长班
abstract class ClassPlugin
{
public ClassPlugin(eGuiType _guyType)
{
GuiType = _guyType;
}
public eGuiType GuiType;
public void Action() { }
}
我希望所有派生类都实现Action成员并定义guyType字段。要做到这一点,我已经把它放在构造函数中,这是我想到的唯一方法。因此,抽象类可以是:
class ClassStartWF: ClassPlugin
{
public Cl