#include<iostream>
using namespace std;
class A
{
private:
int value;
public:
A(int init):value(init){}
void changevalue(A &a){a.value = 100;}//why a's value can be changed?
void printvalue(){cout << value << endl;}
};
int main(int
我有一个非常奇怪的三参数构造函数的问题,当我尝试运行程序时,visual studio只显示了一个错误:“'Sort.HeapSort‘不包含一个接受3个参数的构造函数11235”。
namespace Sort
{
class HeapSort
{
private int[] A;
private int heapSize;
private int min;
private int max;
Random myRandom = new Random();
HeapS
我有一个布尔值,只有当函数调用时,它才需要为true,如果函数返回,则需要为false。我正在尝试一个有作用域的类,如果作用域结束,它就会调用析构函数,它会试图将其设置为false。
以下是我的简化代码。
class MyClass {
private: bool in_func = false;
public:
void func() {
in_func = true;
// when scope ends I need to set in_func = false
class ScopeDistruct {
b
在创建大多数派生类的对象时,如何在私有虚拟继承中调用大多数基类的默认构造函数。但是,在大多数派生类的构造函数初始化程序列表中提到的情况下,也不会调用相同的值。
#include<iostream>
using namespace std;
class A
{
public:
A() {cout << "1";}
};
class B: private virtual A
{
public:
B() {cout << "2";}
};
class C: private virtual A
{
publi
因此,我正在尝试使用helper方法构造一个类,即:
class Type{
int a, b, c;
friend auto helper(auto);
friend auto test_helper(auto);
/* couples test with implement */
public:
void method(){
helper(this);
}
};
但是,如果我们想要测试helper,那么让helper成为好友函数可以将测试与实现结合起来。
所以我想让helper成为一个免费的函数,即:
auto helpe
我们都知道,如果我们不专门定义一个构造函数,编译器会插入一个不可见的零参数构造函数。我以为它的访问修饰符是public的,但在处理内部类问题时,我发现可能我错了。下面是我的代码:
public class Outer {
protected class ProtectedInner {
// adding a public constructor will solve the error in SubOuterInAnotherPackage class
//public ProtectedInner() {}
}
}
在另一个包中有一个Outer的子类:
public
我需要创建一个简单的应用程序,在MainViewModel中,在初始化过程中会发生一些事情。
当我试图运行我的代码时,异常会发生在DisplayRootViewFor<MainViewModel>();中的AppBootstrapper中。
“System.MissingMethodException”类型的异常发生在mscorlib.dll中,但未在用户代码中处理
附加信息:未为此对象定义无参数构造函数。
Bootstrapper:
using System;
using Ninject;
using Caliburn.Micro;
namespace ChartsDi
抱歉,我之前没有很好地回答这个问题。我尝试实现工厂模式。一个更好的例子:它是一个抽象类Human,它有一个create函数。根据传递给create的参数,它决定是返回其子类Man的实例,还是返回子类女性的实例。因此,您可以使用:Human john = Human.create("Man");来调用create,这些子类是从抽象类Human继承而来的,并且与Human在同一个文件中定义。我不希望通过主程序中的Human lisa = new Human("woman") {};来扩展它。谢谢!
编辑:
谢谢你的帮助!我最终使用的解决方案是让类Human公开,以及
class A {
protected:
A(int) {}
};
struct B : public A {
public:
using A::A;
};
void print(B b) {}
int main(int argc, char** argv) {
print(1);
return 0;
}
这段代码不编译..。即使在struct公共部分中使用“A::a”,B仍然没有接受int的公共构造函数(但它有一个受保护的构造函数)。
看来:
我可以用“使用”继承公共构造函数
我可以在派生类中将基类中定义的任何方法(私有的、受保护的或其他的)重新声明为p
在我的一次面试中,我有一个问题:
classA{
// some instructions
ClassA a = new ClassA();
}
ClassB{
//Some instructions
ClassA a1 = new ClassA(); // Here I should throw a compilation or runtime error.
}
我能做这个吗?
我正在学习OOPS的概念,并遇到了私有继承。根据我所学到的--当一个类从基类派生出来时,当派生类被实例化时,则首先调用基类的构造函数,然后是派生类的构造函数。因此,在代码"A创建“将首先打印。问题是,既然继承是私有的,A的所有成员在B中都是私有的,那么当B被实例化时,如何调用A的构造函数。按照这个逻辑,下面的代码应该会生成错误,但是当我运行它时,它会编译得很好,并给出输出"A创建“和"B创建”。这是怎么回事?还是我在理解这个概念时犯了什么错误?
#include <iostream>
using namespace std;
class A{
public
对于下面的基础,派生和列表类,如何使用非默认构造函数base(int newsize)而不是默认构造函数base()初始化每个元素,以便我立即为列表中的每个元素创建正确的数组大小?
class base
{
// default constructor
base();
// constructor to a newsize
base(int newsize);
int *array;
int size;
};
class derive : public base
{
int somethingelse;
};
class l
我正在尝试创建一个队列,这需要创建另一个存储在队列中的对象。错误是
binary.cpp: In function ‘int main()’:
binary.cpp:183:1: error: ‘Queue<T>::Queue(T) [with T = binary<std::basic_string<char> >*]’ is private
Queue<T>::Queue(T item){
^
binary.cpp:286:65: error: within this context
Queue<binary<string
我以前从未尝试过编写以下代码,因为它在生产中没有多大意义。但令我惊讶的是,这段代码编译成功。为什么被设计为允许在同一个类的实例上从静态方法调用私有方法?
public class Beverage {
private void drink () {
System.out.println("Beverage");
}
public static void main (String[] args) {
Beverage b = new Beverage();
b.drink(); //call to
我正在查看一个IntegerCache类,但它的用法我无法理解。最后一行有一个private构造函数,但我不明白它的用途。是干什么的呢?
private static class IntegerCache {
static final int low = -128;
static final int high;
static final Integer cache[];
static {
// high value may be configured by property
int h = 127;
String
我是新的单元测试和使用Mockito框架。
我有一个Java类,其中包含main()方法。在Main()方法中,我还有几个需要进行单元测试的方法。
这是我要测试的类
public class client{
public static void main(String[] args) {
Ip ip = createIpEvent();
.
.
.
}
private static Ip createIpEvent(){
Ip ip = new Ip();
ip.setters(); // various setters
当我将这段代码更改为Member m1 = new Member ();时,它可以完美地工作。为什么它不适用于超类引用?有没有人能解释一下?
public class Family {
String Surname = "Richard";
String Address = "No:10, High Street,Colombo";
}
public class Member extends Family{
String Name;
int age;
public void Details() {
System.out.println(
我在visual studio中使用了Resharper工具
考虑下面编写的一个非常简单的类。
class Test()
{
//constructors do not have any return type.
Test()
{
System.Console.WriteLine("Hello World!");
}
static Test()
{
System.Console.WriteLine("Hello World in Static constructors");
}
考虑下面的代码片段,
#include <memory>
template <typename Derived>
class Base
{
public:
int foo()
{
return static_cast<Derived*>(this)->bar(); // I expected a compilation error here
}
private:
int bar()
{
return 1;
}
};
class Derived : public Bas
考虑下面的代码。g++和clang++都抱怨(正确)构造函数A(int)在类D中是私有的。注意,由于A是D的虚拟基类,根据C++11中的12.6.2/7节,必须在类D的mem-初始化器中初始化A,这是最派生的类。
class A {
public:
A(int i) : x(i) { }
A() : x(1) {}
int x;
};
class B : private virtual A {
protected:
B(int i) : A(i) { } };
class C : public B, private virtual A {
protected
我试图使用反射来调用一个方法。
我正在调用的方法不是静态的,在我调用它的同一个类中。
我的代码的简化版本:
public class Test {
public static void main(String[] args) {
Test instance = new Test();
if (args.length > 0) {
instance.doWork(args[0]);
}
}
private void doWork(String methodName) {
Method method;
try {
我刚刚开始使用Swift语言开发iOS应用程序,但我注意到我们可以创建一个Cocoa Touch框架,以便在其他项目中重用。我已经完成了我自己的框架,但当我试图在我当前的项目中使用它时,我遇到了问题。我的项目似乎不能识别框架中的类,尽管我在文件中调用了使用框架特性的import MyCustomFramework。
以下是我的示例框架结构:
MyCustomFramework |--MyCustomFramework.h (I didn't modify this file, it only contains default code same as when creating) |-
说我有这个
function FileHelper() {
var _path = require("path");
}
我已经看到了实现构造函数方法的两种方法。
function FileHelper() {
var _path = require("path");
this.getFileName = function() {
// can reference _path here
}
}
和
function FileHelper() {
var _path = require("path")
我想尝试一下C++中的构造函数继承,它运行得很好。但是,我发现我实际上不能从女儿类实例中调用一个方法。视觉工作室说
方法母亲::ShowName不可用
尽管它是公开的,但就我而言,儿童班必须提供这种服务。我做错什么了吗?
class Mother{
protected:
char* name;
public :
Mother(char* _name){
name = _name;
}
void ShowName(){
cout << "my name is: " << name <<
我最近在研究c#3.0中新的分部方法,我了解了分部类的用法,它可以分块成多个文件,一个文件包含定义和其他声明,但我想知道,我创建了一个分部类,如下所示:
in class1.cs
partial class A
{
partial void Method();
}
in class2.cs
partial class A
{
partial void Method()
{
Console.WriteLine("Hello World");
}
}
now in class3.cs
class MainClass
{
static void Main
为什么我不能成为格朗类型的班级成员?
class Grand
{};
class Father :private Grand
{};
class Son :public Father
{
Grand g; //This gives error. Class Grand is Inaccessible.
};