标签: implementation

在C中构建词法分析器

我想在C中构建一个词法分析器,我正在关注龙书,我可以理解状态转换但是如何实现它们?

有更好的书吗?

事实上,我必须通过多个状态解析字符串,以便我可以判断字符串是否可接受!

c implementation finite-automata

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

我如何使用Lucene.Net索引PDF文件?

我正在寻找一些示例代码,演示如何使用Lucene.Net和C#索引PDF文档.谷歌出现了一些,但没有一个,我觉得有帮助.

c# implementation lucene.net

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

实现默认构造函数

我试图在C++中实现一个DateTime类:

class DateTime {
public:
    DateTime();
    DateTime(time_t ticks);
    DateTime(int day, int month, int year);
    DateTime(int day, int month, int year, int hour, int minute, int second);
    //...

private:
    time_t ticks;
    int day;
    int month;
    //...
}
Run Code Online (Sandbox Code Playgroud)

然后在申请中:

DateTime date1; //default constructor
Run Code Online (Sandbox Code Playgroud)

我知道c ++需要一个默认的构造函数,但是在这种情况下我该如何实现呢?

它应该将所有属性设置为0吗?这会让所有其他方法都有效,但看起来并不直观......

它应该只是让所有属性都未初始化吗?这将使它的方法都不起作用,但它似乎比0更直观,因为你还没有做任何事情.

它应该设置内部,bool initialized=false然后所有方法检查之前操作吗?

我对这一点不太确定.这样做有"标准"的方法吗?

c++ implementation constructor

4
推荐指数
2
解决办法
4976
查看次数

如何为非模板类​​定义模板方法?

我的编译器对我实现模板方法的方式不满意.它为这些实现提供了大量错误消息,如"未定义类型T".

这是我的第一个方法,它是在类块之外实现的:

class VectorConvertor
{
    public:
        // ...
        template <class T>
        static void ReverseVectorElements(std::vector<T> & Vector);
        // ...
};

template <class T>
void VectorConvertor::ReverseVectorElements(std::vector<T> & Vector)
{
    std::vector<T>::size_type size = Vector.size();
    T swap;
    for (std::vector<T>::size_type i=0; i<size/2; i++)
    {
        swap = Vector.at(i);
        Vector.at(i) = Vector.at(size-1-i);
        Vector.at(size-1-i) = swap;
    }
}
Run Code Online (Sandbox Code Playgroud)

另一个是这个; 这次方法是在类中实现的:

class ElementaryMath
{
    public:
        // ...
        template <class T> static char sign(T num)
        {
            return (num >= static_cast<T>(0)) ? static_cast<char>(+1) : static_cast<char>(-1);
        }
        // ...
} …
Run Code Online (Sandbox Code Playgroud)

c++ methods implementation templates visual-studio

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

实现多个接口的类的清晰度(替代委托):

假设我们有以下内容:

IFirst = Interface(IUnknown)    
  function GetStuff: Integer;
end;

ISecond = Interface(IUnknown)
  function GetOtherStuff: Integer;
end;

TFirstSecond = class(TInterfacedObject, IFirst, ISecond)    
private 
  function GetStuff: Integer;        //implementation of IFirst
  function GetOtherStuff: Integer;   //implementation of ISecond;
end;
Run Code Online (Sandbox Code Playgroud)

我从来不喜欢在TInterfacedObject中似乎没有办法区分哪些方法实现哪些接口.我错过了什么吗?有没有人知道代码的方式结构呢?要指定GetStuff是IFirst和GetOtherStuff的实现是ISecond的实现吗?('发表评论'不是我正在寻找的答案......)

我知道我可以使用'implements'指令为每个接口定义TFirstSecond中的属性,并将实现委托给TFirstSecond中包含的实例,从而隔离所有内容.但我想要一条捷径......

delphi implementation interface delegation

4
推荐指数
2
解决办法
3231
查看次数

在Perl中实现一个节点列表

我编写了以下模块但不确定如何引用"last"和"head"节点.以及将下一个节点的地址存储在前一节点的"{nextNode}"中.

我试图在存储它时保存类的引用,但后来它抱怨:"不是List.pm中的HASH引用"; 我明白为什么但不确定语法是怎样的.

如果我取消引用$ head和$ last($$ last - > {nextNode} =\$ class),那么我认为它正在使用我的类的实际名称; 列出而不是我想要的上一个对象.

package List;

my $head = undef;
my $last = undef;

sub new {
    my $class = shift;

    # init the head of the list
    if ($head == undef) {
    $head = \$class;
    print "updated head to:$head", "\n";
    }

    $last = \$class;
    $last->{nextNode} = \$class; # update previous node to point on this new one    

    print "updated last to:$last", "\n";
    my $self = {};
    $self->{value} = shift;    
    $self->{nextNode} …
Run Code Online (Sandbox Code Playgroud)

perl implementation list

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

在没有单调时钟的系统上是否符合要求?

<chrono>报头定义类steady_clock表示单调时钟-即,的值now()永远不会降低作为物理时间增加.虽然这个类没有标记为可选,所以如果实现无法实现它会发生什么,因为它在没有单调时间源的系统上运行?

_GLIBCXX_USE_CLOCK_MONOTONIC未定义的情况下,查看libstdc ++源代码steady_clock只需通过以下方式定义:

typedef system_clock steady_clock;
Run Code Online (Sandbox Code Playgroud)

system_clock虽然不一定稳定,所以这可能(也可能会)打破要求steady_clock.

在没有单调时间源的系统上,C++ 11的符合实现是不可能的吗?为什么steady_clock不像intX_t类型那样选择?

c++ time implementation c++11 c++-chrono

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

如何在运行时确定是否实现了接口成员?

我有一个名为的接口IStructuredReader,它从文件中读取一些结构化数据并将其显示在表单中.它有一个名为的成员Sync(),在实现时,扫描数据以获取用户指定的数据模式.

某些实现IStructuredReader没有同步功能.那些实现抛出NotImplementedException了该Sync()方法.我希望能够检查这个方法是否正在实现,这样我就可以调整表单上的按钮,如果不是的话.

我可以想到一些可以做到这一点的方法,所有这些方法看起来都很笨拙和复杂:

  1. Sync方法分离到自己的接口,为那些支持该功能的实现继承它,并尝试将reader对象强制转换为它以识别该功能,

  2. 写一个NotImplementedAttribute,用它装饰成员,并使用Reflection检查属性的存在,

  3. HasSyncCapability向接口添加布尔属性.

有没有规范的方法呢?

c# implementation interface

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

Kotlin类实现Java接口错误

我有一个Java接口

public interface SampleInterface extends Serializable {
    Long getId();
    void setId(Long id);
}
Run Code Online (Sandbox Code Playgroud)

和应该实现它的Kotlin类

open class ClazzImpl() : SampleInterface

private val id: Unit? = null

fun getId(): Long? {
    return null
}

fun setId(id: Long?) {

}
Run Code Online (Sandbox Code Playgroud)

但是我得到一个编译错误:

类ClazzImpl不是抽象的,并且没有实现抽象成员public abstract fun setId(id:Long!):在com .... SampleInterface中定义的单元

任何想法有什么问题吗?

java implementation interface class kotlin

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

哪里可以找到Chaikin角切割算法的Python实现?

我正在寻找在Python 2.7.X中实现的Chaikin的角切割算法(link1,link2),但找不到它.

也许有人拥有它并且能够共享代码?

python algorithm implementation smoothing python-2.7

4
推荐指数
2
解决办法
973
查看次数