class Base {
public:
virtual Base* clone() const { return new Base(*this); }
// ...
};
class Derived: public Base {
public:
Derived* clone() const override { return new Derived(*this); }
// ...
};
int main() {
Derived *d = new Derived;
Base *b = d;
Derived *d2 = b->clone();
delete d;
delete d2;
}
Run Code Online (Sandbox Code Playgroud)
我在最新版本的Xcode中编译上面的代码,编译器抱怨
cannot initialize a variable of type "Derived*" with an rvalue of type "Base*"*
Run Code Online (Sandbox Code Playgroud)
在Derived *d2 = b->clone().
但我已经克隆了,virtual并让clone()Derived返回 …
我有以下几行:
<INITIAL><<EOF>> {return 0;}
Run Code Online (Sandbox Code Playgroud)
我需要忽略最后一个 EOL -\n或者\r\n在 EOF 之前。我不知道如何将它连接到 EOF 以便它成为一个有效的正则表达式..我试过:
<INITIAL>((\n)|(\r\n))*<<EOF>> {return 0;}
Run Code Online (Sandbox Code Playgroud)
但它说这是一个“无法识别的规则”。
我有一个数字,格式为(13,2)13位和2位小数.我需要对它进行一些计算(比如乘法,除法).我打算BigDecimal用于计算.我应该使用double或float进行计算,因为BigDecimal比较慢一点?
我需要通过JAX-WS中的客户端连接到外部服务器.客户端在Wildfly 8上运行.使用Java 8连接正常.但我在Java 7中连接到服务器时遇到问题(我试过u45,67,79).服务器端安全性的属性是https://www.ssllabs.com/ssltest/analyze.html?d=app.bundesnetzagentur.de
部分"密码套件"是四个密码.源代码http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#footnote1-1不应该在Java 7中支持GCM密码,源 代码与Java版本的扩展表 http相关联://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#footnote1-1
好的,但两个密码CBC应该由上面相同的源代码推出.在这些来源中注意到,这些密码需要TLSv1.2或更高版本.但我使用这个版本.是的,我将UnlimitedJCEPolicyJDK7中的两个文件放入我的Java的/ lib/security文件夹中.但是在日志中我看到了一些关于"忽略不受支持的密码套件"的内容.我的连接以hanshake失败告终.这是缩短的日志:
//SOME ADDINGS TRUSTED CERT
12:42:00,426 INFO [stdout] (default task-27) Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
12:42:00,426 INFO [stdout] (default task-27) Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
//SOME ANOTHER Ignoring unsupported cipher suite messages
12:42:00,526 INFO [stdout] (default task-27) Allow unsafe renegotiation: false
12:42:00,527 INFO [stdout] (default task-27) Allow legacy hello messages: true
12:42:00,527 INFO [stdout] (default task-27) Is initial handshake: true
12:42:00,527 INFO …Run Code Online (Sandbox Code Playgroud) 我正在使用不支持系统包含文件的解释性脚本语言。
我需要许多 Winsock #defines 的数字。对于大多数人来说,我只能搜索文件并得到如下答案:
#define AF_INET6 23
Run Code Online (Sandbox Code Playgroud)
但对于 FIONBIO 我看到
#define FIONBIO _IOW('f', 126, u_long)
Run Code Online (Sandbox Code Playgroud)
查找_IOW节目
#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
Run Code Online (Sandbox Code Playgroud)
我为此找到了一些片段:
#define IOCPARM_MASK 0x7f
#define IOC_IN 0x80000000
Run Code Online (Sandbox Code Playgroud)
但是当我试图弄清楚结果是什么时,我在转弯的某个地方迷路了。
谁能告诉我 FIONBIO 应该是多少号?我确实在某处找到了一个帖子,其中随意提到在某些 UNIX 版本中有:
#define FIONBIO := 0x5421
Run Code Online (Sandbox Code Playgroud)
我似乎无法让 windows Winsock 定义变成那个数字,而且我不确定它是否应该在任何情况下都相同。
有人可以告诉我答案吗?或者我必须下载一些windows开发环境并编写一个C程序来打印出值?:)
如果我将通过UDP VPN使用它,应用程序中的TCP是否可靠?例如,我有一个应用程序的VPN服务器在10.8.0.1:8080上侦听TCP,我将从主机10.8.0.2到10.8.0.1:8080从TCP连接.它会可靠吗?
|----------| udp tunnel |----------|
| Server |----------------------| Client |
| 10.8.0.1==========tcp=============10.8.0.2 |
| |----------------------| |
|----------| |----------|
Run Code Online (Sandbox Code Playgroud) 我正在尝试为类项目创建链接列表.我的节点类有一个指向链接节点的指针和另一个指向专用书类的指针.
class Node{
private:
Book *data;
Node *linkedLink;
public:
Node(Book *inputedData);
Book* getBook();
Node* getLinked();
void changeLinked(Node *newLink);
Node& operator=( const Node& rhs );
~Node(); //deconstructor
};
Run Code Online (Sandbox Code Playgroud)
我的教授提供了一个我们无法改变的驱动因素.在这个驱动程序中,他有以下代码:
// (bookList is an instance of my LinkedList class)
// (and getFirst() returns my LinkedList's head node)
while (bookList.getFirst() != nullptr)
{
Node * t = partsList.pop_front();
delete t;
}
Run Code Online (Sandbox Code Playgroud)
以下是我的节点类析构函数:
Node::~Node(){
delete data; //this deletes the book class that data points to.
delete linkedLink;
}
Run Code Online (Sandbox Code Playgroud)
问题是,我需要的变量(T)指向节点类的实例设置为nullptr它做释放后*data …
我在 android studio 中的 JNI 中使用此代码。一些用例在运行时导致崩溃和其他工作。也许它与内存泄漏有关。我收到此错误:
SIGSEGV(信号 SIGSEGV:无效地址(故障地址:0xffffffffdeadbaad))
jstring jstr1 = (*env)->NewStringUTF(env, ""); char *m1 = (char *)(*env)->GetStringUTFChars(env,jstr1, 0);
jstring jstr2 = (*env)->NewStringUTF(env, "-");
char *m2 = (char *)(*env)->GetStringUTFChars(env,jstr2, 0);
jstring jstr3 = (*env)->NewStringUTF(env, "");
char *aaa = (char *)(*env)->GetStringUTFChars(env,jstr3, 0);
// ...
strcat(aaa,m1);
(*env)->ReleaseStringUTFChars(env, jstr1, m1);//no problem
strcat(bbb,m2);
(*env)->ReleaseStringUTFChars(env, jstr2, m2);//no problem
strcat(str,aaa);
//(*env)->ReleaseStringUTFChars(env, jstr3, aaa);//crash
strcat(str,bbb);
(*env)->ReleaseStringUTFChars(env, jstr4, bbb);//no problem
strcat(str,m3);
(*env)->ReleaseStringUTFChars(env, jstr5, m3);//no problem
strcat(str,ccc);
jstring res = (*env)->NewStringUTF(env, str);
//(*env)->ReleaseStringUTFChars(env, jstr6, str);//crash
Run Code Online (Sandbox Code Playgroud) java ×3
c++ ×2
android ×1
bigdecimal ×1
c ×1
compilation ×1
encryption ×1
eof ×1
flex-lexer ×1
java-7 ×1
json ×1
linked-list ×1
mariadb ×1
nullptr ×1
openvpn ×1
pointers ×1
security ×1
sockets ×1
tcp ×1
tls1.2 ×1
udp ×1
vpn ×1
winsock ×1