我有一个Base纯虚函数的类f().另一类Derived来源于Base.我f()从内部打电话Derived.使用g ++,我从链接器中得到一个错误.
[agnel@dooku tmp]$ g++ pure_virtual_function_call.cpp
/tmp/ccGQLHi4.o: In function `Derived::f()':
pure_virtual_function_call.cpp:(.text._ZN7Derived1fEv[_ZN7Derived1fEv]+0x14): undefined reference to `VirtualBase::f()'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
在我看来,错误是由链接器捕获的.为什么编译器没有报告此错误?为什么要留给链接器?
这是代码:
#include <iostream>
using namespace std;
class VirtualBase {
public:
virtual void f() = 0;
};
class Derived : public VirtualBase {
public:
void f(){
VirtualBase::f();
cout << "Derived\n" ;
}
};
int main(){
Derived d;
d.f();
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读cin中的一些线段.每个线段由起点和终点表示.2D.X和Y.
输入未排序.它是随机顺序的.(更新:但是我需要它们首先按X排序然后按Y排序)
我可以读取所有段,将它们存储在向量中,然后调用std :: sort.另一方面,我可以创建一个空的std :: set,并在它到达时插入每个段.该集将自动维护排序顺序.这两种方法中哪一种更有效?
更新:输入的总大小(段数)是事先已知的.
我正在尝试将密码存储在我想要检索以供日后使用的文件中.Hashing不是一个选项,因为我需要密码才能连接到远程服务器以供日后使用.
以下代码运行良好,但每次创建不同的输出,即使键是相同的.这很糟糕,因为当应用程序关闭并重新启动时,我将无法再检索到我的密码.如何将密码存储在文件中并在以后检索?
public class EncyptDecrypt {
static System.Security.Cryptography.TripleDESCryptoServiceProvider keyProv = new System.Security.Cryptography.TripleDESCryptoServiceProvider();
public static System.Security.Cryptography.TripleDESCryptoServiceProvider KeyProvider {
get {
keyProv.Key = new byte[] { /* redacted with prejudice */ };
return keyProv;
}
}
public static string Encrypt(string text, SymmetricAlgorithm key) {
if (text.Equals(string.Empty)) return text;
// Create a memory stream.
MemoryStream ms = new MemoryStream();
// Create a CryptoStream using the memory stream and the
// CSP DES key.
CryptoStream encStream = new CryptoStream(ms, key.CreateEncryptor(), CryptoStreamMode.Write);
// Create a …Run Code Online (Sandbox Code Playgroud) 我是一名MFC程序员.我刚刚体验了Vista(在VPC上......是的,我迟到了).我应该在未来几天对事情进行深入评估.随便看看,我注意到两个主要的变化:
从程序员的角度来看,我应该注意哪些其他新功能?
我需要创建一个立方体的3D模型,在一个面的中心打出一个圆形孔,完全穿过立方体到达另一侧.我能够为面孔和孔生成顶点.
四个面(不受孔影响)可以建模为单个三角形条.孔的内部也可以建模为单个三角形条.
如何为有孔的面生成索引缓冲区?是否有标准算法来执行此操作?
我正在使用Direct3D,但欢迎来自其他地方的想法.
我有一些直线排列的插槽和钉子.栓可以移动,需要每个都移动到一个槽.只有在采取所有钉子时,才能将槽留空.移动挂钉时,不允许穿过另一个挂钉.换句话说,必须保持钉的顺序.优选地,所有钉子移动的总距离应保持最小.应尽可能将挂钉置于最近的可用插槽中.
我想知道的是:什么样的数学领域处理这样的问题?处理类似问题的任何众所周知的算法的名称是什么?我正在寻找Google饲料.一些关键字.
+--oooo-+--+---+---o--+------+--+-ooo+o-+-------o--+-----o-o-+-o
+ - Slots
o - Pegs
Run Code Online (Sandbox Code Playgroud)
编辑:我认为这种可视化更有意义.它们是两个需要排列的独立轨道.
Slots: +-------+--+---+------+------+--+----+--+----------+---------+--
Pegs: ---oooo------------o--------------ooo-o---------o--------o-o---o
Run Code Online (Sandbox Code Playgroud)
编辑:只是想明确说明插槽的数量可以大于,小于或等于挂钩的数量.
我想NGEN.EXE在创建安装程序之前使用以生成程序集的本机映像.我希望这能保持我的二进制文件Reflector.我对此是否正确?
我刚刚了解到所有本机映像现在都存储在本机映像缓存中.有没有办法获得本机二进制文件,然后我可以使用安装程序打包?另一方面,生成本机图像后是否可以摆脱原始组件?
编辑:我正在使用一个应用程序,它与服务器通信时使用硬编码密钥进行加密.使用.NET,人们可以轻松地将钥匙放在钥匙上.
如何在Windows计算机上检测哪些进程正在播放音频?换句话说,我如何枚举使用我的声卡的进程?
我将很快开始研究我正在开发的产品的"打印"和"打印预览"功能.我没有打印机,也没有购买打印机的意图.我正在寻找可以用来测试我的打印代码的任何免费软件.
我可以用来模拟打印机的最佳免费选项是什么?我在Windows上使用GDI +,但平台独立的选项,如PDF编写者,非常受欢迎.
我只是看了HRESULTVS2008 中的定义.WinNT.h有以下行:
typedef __success(return >= 0) long HRESULT;
Run Code Online (Sandbox Code Playgroud)
究竟是什么意思?它对我未经训练的眼睛看起来甚至不像C或C++