我最近阅读了[[nodiscard]]C ++ 17,据我了解,它是一项新功能(按合同设计吗?),它迫使您使用返回值。对于有争议的函数std::launder(从C ++ 20开始不丢弃),这是有意义的,但是我想知道为什么std::move在C ++ 17/20 中没有这样定义。您知道很好的理由还是因为C ++ 20尚未完成?
我对在继承中使用私有方法感到困惑,例如:
public class A {
private void say(int number){
System.out.print("A:"+number);
}
}
public class B extends A{
public void say(int number){
System.out.print("Over:"+number);
}
}
public class Tester {
public static void main(String[] args) {
A a=new B();
a.say(12);
}
}
Run Code Online (Sandbox Code Playgroud)
基于上面的代码,我感到困惑的私有方法的继承,是继承了私有方法class A来B?或者两个类中的say方法完全不相关?由于代码有当它在main()方法运行错误,好像class B不能调用从私有方法class A.
我正在尝试学习Java,但是我将数组传递给构造函数时遇到了问题.例如:
申请类:
byte[][] array = new byte[5][5];
targetClass target = new targetClass(array[5][5]);
目标类:
public class targetClass {
/* Attributes */
private byte[][] array = new byte[5][5];
/* Constructor */
public targetClass (byte[][] array) {
this.array[5][5] = array[5][5];
}
}
Run Code Online (Sandbox Code Playgroud)
如果你能告诉我如何做到这一点,我将不胜感激.
通常情况下,问题有不同的解决方案.我的目的是找到重复的整数.我有两种方法.
第一个是对整数数组进行排序并进行比较.第二个就是使用HashSet.你能告诉我哪个更有效率,为什么?请注意,不得覆盖原始数组.
主要课程
public class Main {
static DuplicateNumbers dn;
static DuplicateNumbersHash dnh;
public static void main(String[] args) {
int[] arrayOfIntegers = {9, 7, 1, 3, 4, 2, 7, 5, 9};
// 1st class test
dn = new DuplicateNumbers(arrayOfIntegers);
dn.searchForDuplicates();
System.out.println("\n\n2nd test\n\n");
// 2nd class test
dnh = new DuplicateNumbersHash(arrayOfIntegers);
dnh.searchForDuplicates();
}
} // Main class
Run Code Online (Sandbox Code Playgroud)
非HashSet方法
public class DuplicateNumbers {
protected int[] arrayOfIntegers;
public DuplicateNumbers(int[] arrayOfIntegers) {
this.arrayOfIntegers = arrayOfIntegers;
}
public void searchForDuplicates() {
// …Run Code Online (Sandbox Code Playgroud) 我最近一直在阅读有关std::make_shared功能的内容.据我所知Effective Modern C++,make函数应该是首选,除非:
std::weak_ptr可能比它更长std::shared_ptr,处理大型对象,自定义删除等.所以,我理解std::make_shared只用一次调用就可以在堆及其控制块上分配一个对象.因此,问题是std::shared_ptr在必须释放控制块之前可能不会删除对象.如果我错了,请纠正我,但这是在最后一次std::weak_ptr释放的时候.因此,std::make_shared如果存在std::weak_ptr指向它的活着,则可能不合适.
但这对大多数物体来说仍然是一个问题吗?我们是否需要关注何时为非大型物体发布控制块?可以说,现在内存并不难以获得,所以这只是大型对象和低内存系统的问题吗?
我关注的一点是:如果我设计一个使用的类std::make_shared,并std::weak_ptr在将来使用,我必须返回并用常规替换make函数std::shared_ptr<Class>(new Class()).
尝试使用负数和if else语句终止程序.有没有人看到这个问题的错误.
import java.util.Scanner;
public class Assignment {
public static void main(String args[]){
int n;
int i=0;
System.out.print("Enter a Number:");
Scanner scanner = new Scanner(System.in);
n= scanner.nextInt();
int backUp = n;
if(n>0)
n=n/10;
i++;
else if(backUp = -1)
System.out.print("program terminated......");
System.exit(0);
System.out.println("Number of Digits in " +backUp +" is " +i);
}
}
Run Code Online (Sandbox Code Playgroud) 问题是 - "写一个for循环,将一个字符循环计数器从'c'迭代到'h',包括两个字符,每次使用System.out.print()打印字符循环计数器.外部(和之后) )循环,用空的System.out.println()终止该行."
int x =1;
for (char y = 'c'; y>=2 && y<=7; y++) {
System.out.println(y);
x++;
}
System.out.println();
Run Code Online (Sandbox Code Playgroud)