看看下面的代码.这里的目标是通过两个函数(from ReferenceProvider::getReference()到getRef()to main())返回一个引用:
#include <tchar.h>
#include <assert.h>
#include <string>
class BaseClass {
public:
virtual void write() const {
printf("In base class\n");
}
};
typedef BaseClass* BaseClassPointer;
class ChildClass : public BaseClass {
public:
virtual void write() const {
printf("In child class\n");
}
};
typedef ChildClass* ChildClassPointer;
//////////////////////////////////////////////////////////////////////////
ChildClass* g_somePointer = new ChildClass();
class ReferenceProvider {
public:
const BaseClassPointer& getReference() {
const BaseClassPointer& val = g_somePointer;
return val;
}
};
ReferenceProvider g_provider;
const BaseClassPointer& getRef() {
std::string …Run Code Online (Sandbox Code Playgroud) 拥有这个(简化的)C# 类:
public static class RandomValue
{
private static readonly Random s_random = new Random();
public static int GetRandomValue()
{
lock (s_random)
{
return s_random.Next();
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以GetRandomValue()通过查看此方法生成的值来预测 的下一个值?
假设(为了问题):
GetRandomValue()。我问是因为我看到一些代码使用类似的方法来生成某种访问令牌。这段代码不是我写的,我可能会使用 .NET 的加密随机类之一。我只是好奇这是否仍然足够安全。
如何导出C++/CLI项目中定义的本机类的方法?这就是我所拥有的:
.h文件:
#pragma once
#ifdef COMPILE_PRODUCER_LIB
#define PRODUCER_LIB_EXPORT __declspec(dllexport)
#else
#define PRODUCER_LIB_EXPORT __declspec(dllimport)
#endif
public class PRODUCER_LIB_EXPORT MySecondNativeClass {
public:
MySecondNativeClass(int val);
int getValue() const;
private:
int m_value;
};
Run Code Online (Sandbox Code Playgroud)
.cpp文件:
#include "stdafx.h"
#include "MySecondNativeClass.h"
MySecondNativeClass::MySecondNativeClass(int val) {
this->m_value = val;
}
int MySecondNativeClass::getValue() const {
return this->m_value;
}
Run Code Online (Sandbox Code Playgroud)
在同一个项目中使用此类工作正常,但在另一个(C++/CLI)项目中使用它会给我"未解析的外部符号"链接器错误.(COMPILE_PRODUCER_LIB是仅在包含类的项目中定义的预处理器定义.)
我已经创建了一个小的解决方案(针对Visual Studio 2010),它显示了问题(在本页末尾下载).在那里,本机类MySecondNativeClass在项目"ManagedProviderLib"中定义,并在"ExternalTestClass.cpp"中使用(在项目"ManagedExternalLib"中).
在C++中,假设以下类层次结构:
class BaseClass { };
class ChildClass : public BaseClass { };
Run Code Online (Sandbox Code Playgroud)
进一步假设这两个类的工厂类具有通用的模板化基类:
template<typename T>
class Factory {
public:
virtual T* create() = 0;
};
class BaseClassFactory : public Factory<BaseClass> {
public:
virtual BaseClass* create() {
return new BaseClass(&m_field);
}
private:
SomeClass m_field;
};
class ChildClassFactory : public Factory<ChildClass> {
public:
virtual ChildClass* create() {
return new ChildClass(&m_field);
}
private:
SomeOtherClass m_field; // Different class than SomeClass
};
Run Code Online (Sandbox Code Playgroud)
需要注意的是的大小/内部结构ChildClassFactory和BaseClassFactory不同的是由于它们的不同的字段.
现在,如果有一个ChildClassFactory(或Factory<ChildClass>)的实例,我可以安全地将其转换为Factory<BaseClass>(通过 …
当我使用R的curve()功能时,有没有办法强制它在X轴和Y轴上使用相同的比例?
例如,考虑这个R代码
mean <- 5
variance <- 0.05
curve(exp((((x - mean) / variance)^2) * -0.5), mean - 2, mean + 2)
Run Code Online (Sandbox Code Playgroud)
这会给我这个情节:

如您所见,X轴和Y轴使用不同的比例.我怎样才能解决这个问题?
注意:我知道我可以手动指定Y轴的范围(通过ylim=),但我不想使用它(因为这需要在函数更改时采用它).
我是PowerShell的新手,我只想弄清楚它是如何工作的.
那么,我该如何编写这段代码:
Get-ChildItem C:\ | Sort-Object Length
Run Code Online (Sandbox Code Playgroud)
作为多行代码?我试过这个:
$child_items = Get-ChildItem C:\
Sort-Object $child_items Length
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我越来越:
Sort-Object : A positional parameter cannot be found that accepts argument 'Length'.
Run Code Online (Sandbox Code Playgroud) 在WPF中是否可以制作某个元素 - 例如,Canvas包含按钮 - 半透明?到目前为止,我所能找到的是如何使整个窗口透明或使WPF形状的背景透明; 但那不是我需要的.
请在XAML或C#中提供答案 - 我不会说Visual Basic.
这个问题更多的是出于好奇而不是真正的问题.请考虑以下代码(C#4.0,如果重要):
class Program {
static Point myPoint = new Point(3, 5);
static void Main(string[] args) {
Console.WriteLine("Point Struct Before: " + myPoint);
object point = GetPoint();
Console.WriteLine("Point Object Before: " + point);
myPoint.X = 10;
Console.WriteLine("Point Struct After: " + myPoint);
Console.WriteLine("Point Object After: " + point);
}
static object GetPoint() {
return myPoint;
}
}
Run Code Online (Sandbox Code Playgroud)
这输出如下:
Point Struct Before: 3;5
Point Object Before: 3;5
Point Struct After: 10;5
Point Object After: 3;5
Run Code Online (Sandbox Code Playgroud)
现在,这应该工作,这意味着返回的点GetPoint()被复制而不是被引用.(否则最后一行也会读"10; 5".)
我现在的问题是:为什么这有效?编译器如何知道是复制还是引用对象?这是否意味着此决定是在运行时而不是在编译期间完成的?
此外,这现在允许我设置point …