小编Jan*_*rlU的帖子

在派生类的基类构造函数中使用重写函数

我对 C++ 编程非常陌生,所以我想编写一些简单的代码来习惯语法。我暂时故意忽略了指针和参考文献。

在编码过程中,我正在练习继承,我想创建一个代表一手牌的 Hand 类。基类有一个名为 update() 的函数,用于在构造时初始化“total”和“notation”属性。此外,可以使用 add() 函数将牌添加到手牌中,该函数将牌添加到手牌中并触发 update() 以适当地更新属性。

#include<vector>

class Hand
{
public:
    std::vector<int> cards;
    int total;
    std::string notation; // Abbreviated notation of the object
    // Constructor
    Hand(std::vector<int> cards);
    void update();
    void add(int card);
}

Hand::Hand(std::vector<int> cards)
{
    this->cards = cards;
    update();
}

void Hand::update()
{
    total = 0;
    notation += "{ ";
    for (int card: cards)
    {
        total += card;
        notation += std::to_string(card) + " ";
    }
    notation += "}";
}

void Hand::add(int card)
{ …
Run Code Online (Sandbox Code Playgroud)

c++ virtual inheritance constructor function

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

是否可以跟踪类的当前实例数?

在 .NET 中,我知道有一个垃圾收集器可以管理程序执行期间正在使用的内存。这意味着对象将在未使用时被清理。

我想知道是否可以在某个类中保留一个静态计数器,当该类的实例被创建或垃圾收集时自动更新。例如,如果我创建了某个CountableInstance类的一些实例,那么它们每个实例都可以根据它们的创建时间来InstanceIndex跟踪它们的当前位置。

这样的流程可能如下所示:

  1. 程序开始
  2. CountableInstance ctble0 是用 InstanceIndex == 0
  3. CountableInstance ctble1 是用 InstanceIndex == 1
  4. CountableInstance ctble2 是用 InstanceIndex == 2
  5. CountableInstance ctble1 未使用并收集垃圾
  • ctble0的索引保持不变
  • ctble2的索引变为 1
  1. 节目结束

我猜想跟踪CountableInstance实例的数量应该是这样的:

public class CountableInstance
{
    public static int total = 0;
    public CountableInstance()
    {
        InstanceIndex = total;
        total++; // Next instance will have an increased InstanceIndex
    }
    public CountableInstance(...) : this()
    {
        // Constructor logic goes here
    }

    public …
Run Code Online (Sandbox Code Playgroud)

c# static class .net-core

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

C# 表达式主体推断?

假设我有一个小的示例类:

public class Test
{
    public Test() {}
    public List<int> Numbers { get; set; } = new List<int>();

    public void AddNumber(int number) => Numbers.Add(number);
    public void RemoveNumber(int number) => Numbers.Remove(number);
}
Run Code Online (Sandbox Code Playgroud)

void命名RemoveNumberbool返回类型List<int>.Remove(int item)方法使用返回类型方法时,为什么上面的摘录没有给出任何警告或错误?调用方法和被调用方法的返回类型是否应该不匹配?

c# methods

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

如何在 PRIMENG 中设置 p-columnFilter 的默认值?

PRIMENG 是 Angular 的组件库,我目前正在使用他们的p-table组件来显示数据库中的数据。表中显示的一列包含一个布尔值,我希望true该列过滤器有一个默认值。

下面是该表的 HTML 示例:

<p-table    class="my-table"
            [value]="(myValues$ | async)!"
            [scrollable]="true"
            scrollHeight="flex"
            [virtualScroll]="true"
            selectionMode="single">
    <ng-template pTemplate="header">
        <tr>
            <th>
                Some Boolean
                <div>
                    <!-- 
                   How can I set the filter to only show
                   items where someBoolean == true by default? 
                    -->
                    <p-columnFilter type="boolean" field="someBoolean"></p-columnFilter>
                </div>
            </th>
        </tr>
    </ng-template>
    <ng-template pTemplate="body" let-val>
        <tr [pSelectableRow]="val">
            <td>
                <i class="pi" [ngClass]="{'true-icon pi-check': val.someBoolean, 'false-icon pi-times': !val.someBoolean}"></i>
            </td>
        </tr>
    </ng-template>
</p-table>
Run Code Online (Sandbox Code Playgroud)

该属性myValues$是一个Observable<MyValue[]>并且MyValue类似于:

export interface MyValue …
Run Code Online (Sandbox Code Playgroud)

primeng angular primeng-datatable p-table

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