小编Mar*_*ics的帖子

如何比较 C++ 中的类类型?

可以说我有:

class Base {/*...*/}
class Derived1: public Base {/*...*/}
class Derived2: public Base {/*...*/}
Run Code Online (Sandbox Code Playgroud)

..我有:

class SomeClass {
public:
    template<typename DerivedType>
    DerivedType GetDerived();
private:
    vector<Base*> m_classes;
}
Run Code Online (Sandbox Code Playgroud)

GetDerived()我遍历 m_classes 向量的函数中,我想做一些类似的事情:

if(m_classes[i] == DerivedType) {
    return m_classes[i];
}
Run Code Online (Sandbox Code Playgroud)

...并假设我们知道 m_classes 中的一个对象将包含一个“DerivedType”对象。

例子:

m_classes[2] = Base* BasePtr = new Derived1;
Run Code Online (Sandbox Code Playgroud)

.. 在这种情况下,我想像这样使用 GetDerived 函数:

GetDerived<Derived1>();
Run Code Online (Sandbox Code Playgroud)

.. 这应该返回 m_classes[2]

我该怎么做呢?如何将基指针对象与派生类类型进行比较?更准确地说,这个GetDerived()函数应该是什么样子的?

c++ types class

5
推荐指数
1
解决办法
8273
查看次数

for循环中的if else语句?

在我正在为学校做的项目的最后一部分,我应该if-elsefor循环中使用一个语句,但我不知道如何做到这一点.我可以使用大量的if-else陈述来做同样的事情,但我不认为我的老师会很感激.

以下是家庭作业最后部分的说明......

计算等级(A,B,C,D或F)并使用if-else循环存储在另一个名为grade的Array8中,并在for循环中使用以下截止值来分配等级.

1.    Average                        Grade
2.    >= 90                          A
3.    >=80 and <90                   B
4.    >=70 and <80                   C
5.    >=60 and <70                   D
6.    <60                            F
Run Code Online (Sandbox Code Playgroud)

到目前为止这是我的代码......

public class Proj5 {
    public static void main (String[] args) {
        String[] Array1= {new String("Adam"),new String("Smith"),new String("Jones"),new String("Becky"),new String("Taylor")};
        Integer[] Array2={new Integer(90),new Integer(89),new Integer(86),new Integer(76),new Integer(95)};
        Integer[] Array3={new Integer(92),new Integer(79),new Integer(85),new Integer(90),new Integer(87)};
        Integer[] Array4={new Integer(93),new Integer(80),new Integer(90),new Integer(87),new Integer(92)};
        Integer[] Array5={new Integer(90),new Integer(77),new Integer(86),new …
Run Code Online (Sandbox Code Playgroud)

java if-statement

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

有多少个对象可以进行垃圾回收?

所以我最近去过面试,并被问到以下问题.(实际上这只是一个测试写作,所以我不能问任何问题)

在main方法的最后,有多少对象可以进行垃圾回收?

public class Main {
    public static void main(String[] args) {
        Object obj;
        for (int i = 0; i < 5; i++) {
            obj = new Object();
        }
        obj = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

(A)0

(B)1

(C)5

我知道它是0,因为至少有一个object(obj)将被垃圾收集,但我也知道它obj不是真正的对象,它只是对它的引用.所以我的回答是5.

那是对的吗?如果没有,那么为什么呢?

java garbage-collection

0
推荐指数
1
解决办法
151
查看次数

标签 统计

java ×2

c++ ×1

class ×1

garbage-collection ×1

if-statement ×1

types ×1