小编zuu*_*uuz的帖子

继承一个接口,实现部分方法,让派生类实现其余的

定义以下C#接口:

public interface IShape
{
    int NumberOfLineSegments {get;}
    int Area {get;}
}
Run Code Online (Sandbox Code Playgroud)

接下来,我想定义几个矩形类:Trapezoid,square等.所有这些类的Area()属性都不同,但NumberOfLineSegments()总是返回4.因此,我想要一个名为Rectangle(或IRectangle)的'临时'类或接口,它看起来像:

public Rectangle : IShape
{
    public int NumberOfLineSegments{get{return 4;}}
}
Run Code Online (Sandbox Code Playgroud)

我希望Rectangle只实现NumberOfLineSegment(),并将其留给派生类来实现其余的:

public Square : Rectangle 
{
    public int Area() {get{return length*height;}
}
Run Code Online (Sandbox Code Playgroud)

但是,由于IShape是一个接口,Rectangle类也必须实现Area(),它不知道如何实现.因此,我似乎被卡住了,要么为Rectangle定义'dummy'Fare()方法,要么完全使用继承权.

有没有办法规避这个?我通过c#和StackOverflow在Richter的clr中广泛阅读.提前致谢!

c# inheritance interface class

11
推荐指数
2
解决办法
4369
查看次数

使用参数保持日期在xts中进行子集化

我熟悉xts子集化功能.但是,我找不到一种优雅的方法来对参数化日期范围进行子集.这样的事情:

times = c(as.POSIXct("2012-11-03 09:45:00 IST"),
          as.POSIXct("2012-11-05 09:45:00 IST"))

#create an xts object:
xts.obj = xts(c(1,2),order.by = times)

#filter with these dates:
start.date = as.POSIXct("2012-11-03")
end.date = as.POSIXct("2012-11-04")

#instead of xts["2012-11-03"/"2012-11-04"], do something like this:
xts[start.date:end.date]
Run Code Online (Sandbox Code Playgroud)

有人有任何想法吗?谢谢!

r subset xts

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

继承类类型的c ++容器

我想要一个容器(让我们说一个std :: vector)来保存各种继承类型,并实例化它们,.ie矢量类 - >对象矢量.

例如:

class A{};

class B: public class A
{};

class C: public class A
{};

void main()
{
    std::vector<of inherited A types> typesVec;
    std::vector<A*> objectsVec;

    typesVec.push_back(class B);
    typesVec.push_back(class C);

    for (int i = 0; i < typesVec.size(); i++)
    {
        A* pA = new typesVec.at(i);
        objectsVec.push_back(pA);
    }

}
Run Code Online (Sandbox Code Playgroud)

提前致谢..

c++ inheritance containers vector

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

使用多个渲染目标的成本

我使用glsl作为GPGPU的框架进行实时图像处理.我目前正在尝试"刮掉"几毫秒来使我的应用程序实时.这是基本设置:

我拍摄输入图像,计算它的几个变换,然后输出结果图像.例如,让输入图像为I.然后,一个片段着色器计算f(I);第二个计算g(I);,最后一个计算h(f(I),g(I)).

我的问题是关于有效计算f(I),g(I):如果我使用2个单独的片段着色器(因此2个渲染通道),或者如果我使用具有2个输出的单个片段着色器,这是否重要?后者会跑得更快吗?我大多发现了关于"如何做"的讨论; 不是表现.

编辑

感谢到目前为止的回复.下面是几个评论,以下是我的用例示例,其中包含更多详细信息:

我希望I用1-d滤镜过滤图像行; 并且还过滤平方图像的行(每个像素的平方). f(I) = filter rows并且g(I) = square and filter rows:

shader1: (input image) I --> filter rows --> I_rows (output image)

shader2: (input image) I --> square pixels and filter rows--> I^2_rows (output image)

问题是:编写一个着色器,执行两个操作比一个接一个地运行这两个着色器要快吗?@derhass建议答案是肯定的,因为访问相同的纹理位置和享受地点.但如果它不适合纹理局部:我还能享受性能提升吗?或者是一个着色器渲染到两个输出基本上相当于两个渲染过程?

opengl gpgpu glsl

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

标签 统计

inheritance ×2

c# ×1

c++ ×1

class ×1

containers ×1

glsl ×1

gpgpu ×1

interface ×1

opengl ×1

r ×1

subset ×1

vector ×1

xts ×1