问题列表 - 第6564页

如何在ruby中使基类方法不可覆盖?

我有一些基类A,其方法不能被覆盖.

class A
  def dont_override_me
    puts 'class A saying, "Thank you for not overriding me!"'
  end
end
Run Code Online (Sandbox Code Playgroud)

另一个扩展A并尝试覆盖该dont_override_me方法的B类.

class B < A
  def dont_override_me
    puts 'class B saying, "This is my implementation!"'        
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我实例化B并调用dont_override_me,将调用B 类的实例方法.

b = B.new
b.dont_override_me # => class B saying, "This is my implementation!"
Run Code Online (Sandbox Code Playgroud)

这是因为ruby的属性.可以理解的.

但是,如何dont_override_me通过派生类强制基类方法不可覆盖?我找不到类似finaljava for ruby 的关键字.在C++中,基类方法可以是非虚拟的,这样它们就不会被派生类覆盖.我如何在ruby中实现这一目标?

ruby oop overriding

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

Python评论:#与字符串

关于在Python源代码中放置注释的"标准"方法:

def func():
    "Func doc"
    ... <code>
    'TODO: fix this'
    #badFunc()
    ... <more code>

def func():
    "Func doc"
    ... <code>
    #TODO: fix this
    #badFunc()
    ... <more code>
Run Code Online (Sandbox Code Playgroud)

我更喜欢将一般注释写为字符串而不是前缀#的.官方的Python风格指南没有提到使用字符串作为注释(如果我在阅读时没有错过它).

我喜欢这种方式主要是因为我认为这个#角色看起来很丑陋.据我所知,这些字符串不做任何事情.

这样做有缺点吗?

python

24
推荐指数
3
解决办法
7426
查看次数

为什么在方法结束时返回是一种好习惯

可能重复:
函数是否只有一个return语句?

一位程序员问我为什么总是在方法结束时返回?

我们都被教导在方法中只有一个return语句而不是遍布代码的多个return语句.

有什么好理由吗?

c# oop

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

.NET DDD示例

有人能指出我在.NET平台上开发的"完整"DDD示例.我觉得大多数例子都"不完整".

我真的很想看到DDD原则在起作用.

domain-driven-design sample

22
推荐指数
2
解决办法
2万
查看次数

当我从文件加载序列化时,为什么我的向量的大小充满了结构?

由于你们大多数人可能都在关注我已经知道的问题,我正在尝试创建一个程序,可以将多个结构序列化为.dat文件,通过加载它的序列化来读取它们,编辑内容,然后重新将它们写入文件等等.这是我正在尝试做的库存计划,我不能让它为我的生活工作.

我正在加载的文件是空白的.我的程序需要10秒甚至加载,现在我知道为什么.这是因为我的矢量大小就像25万.哦等等......这次我跑了它的矢量大小是5,172,285.这是一个充满结构的相当大的向量.没有任何运行时或编译错误,但我很确定我做错了什么.我正在加载的文件也是完全空白的.

码:

// Project 5.cpp : main project file.

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>

using namespace System;
using namespace std;
#pragma hdrstop

int checkCommand (string line);

template<typename T>
void writeVector(ofstream &out, const vector<T> &vec);

template<typename T>
vector<T> readVector(ifstream &in);

struct InventoryItem {
    string Item;
    string Description;
    int Quantity;
    int wholesaleCost;
    int retailCost;
    int dateAdded;
} ;


int main(void)
{
    cout << "Welcome to the Inventory Manager extreme! [Version 1.0]" << endl;
    ifstream …
Run Code Online (Sandbox Code Playgroud)

c++ serialization struct file vector

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

如何按字母顺序对列表进行排序?

我有一个List<String>包含国家/地区名称的对象.如何按字母顺序对此列表进行排序?

java sorting collections list alphabetical

167
推荐指数
11
解决办法
38万
查看次数

当有符号链接时,在VIM中获取逻辑路径

我有以下设置:

mkdir /1
mkdir /1/2
mkdir /1/2/3
ln -s /1/2/3 /1/3
Run Code Online (Sandbox Code Playgroud)

如果我这样做cd /1/3,那么pwd,我明白了/1/3.如果我使用pwd -P,我可以得到/1/2/3pwd -L强迫/1/3.

在VIM中,我正在寻找一种方法来获得/1/3.
如果我打开一个文件/1/3/foo.txt,并使用类似的东西fnamemodify(bufname(winbufnr(0)), ':p:h'),它会返回/1/2/3.
我怎么能告诉它给我相同的目录pwd呢?

vim symlink

8
推荐指数
1
解决办法
2030
查看次数

MPI:锁定标准输出-一次1个进程?

我想打印出每个进程的整数数组的内容。问题是,由于比赛条件,一切都很混乱。

什么是最简单的解决方案?我不想调试。我想显示内容,因为我正在执行排序算法。因此在排序前后显示很有用。

我在lock.c中添加了它:

#include <stdio.h>
static int lock=0;   //Don't use if timing execution
void capture(int rank) {
    while(lock!=0);
    lock = 1;
    printf("\nCaptured by %d\n", rank);
}
void release() {
    lock = 0;
}
Run Code Online (Sandbox Code Playgroud)

并在打印内容之前调用capture(),然后在打印之后调用release()。是的,这是一个类似信号量的hack。但这行不通,有什么主意吗?

c synchronization mpi

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

C++ std :: transform副作用

我像这样实现了UnaryOperation

struct Converter
{
    Converter( std::size_t value ):
        value_( value ), i_( 0 )
    {}
    std::string operator() ( const std::string& word )
    {
        return ( value_ & ( 1 << i_++ ) ) ?
            word:
            std::string( word.size(), ' ' );
    }
    std::size_t value_;
    std::size_t i_;
};
Run Code Online (Sandbox Code Playgroud)

而且我喜欢它

std::vector v;
// initialization of v  
std::transform( v.begin(), v.end(),
                std::back_inserter( result ),
                Converter( data ) );
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以依赖于我的假设,即算法将按照'Converter :: i_'对应于'v'中元素的数量的顺序调用我的'Converter operator()'.

如果我不能依赖订单或者使用类似stl的解决方案来避免可能出现的问题,请引用标准.

谢谢.

编辑:

我知道变换算法标准中的"无副作用"要求.我无法找到同一标准中的仿函数的"副作用".

也许这个任务有一些好看的类似解决方案?

c++ stl

4
推荐指数
1
解决办法
2710
查看次数

同一个包的类可以分布在多个Jar文件中吗?

我正在使用JAR文件中的一些类,它们属于一个包(com.abc.xyz).

我写的类也属于该包,但我无法将我的文件捆绑到该JAR文件中.是否可以将属于同一个包的类分布在多个JAR文件中?

java jar

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