Lidström先生的主张是,构造shared_ptr<Base> p(new Derived);不要求Base有虚拟析构函数:
Armen Tsirunyan:"真的吗?shared_ptr会正确清理吗?在这种情况下你能否证明可以实现这种效果?"
DanielLidström:" shared_ptr使用自己的析构函数来删除Concrete实例.这在C++社区中被称为RAII.我的建议是你学习RAII的全部内容.它将使你的C++编码在使用时更加容易RAII在所有情况下."
Armen Tsirunyan:"我知道RAII,我也知道,当pn达到0时,最终shared_ptr析构函数可能会删除存储的px.但是如果px有静态类型指针
Base和动态类型指针Derived,那么除非Base有一个虚拟析构函数,会导致不确定的行为.如果我错了,请纠正我."DanielLidström:" shared_ptr知道静态类型是Concrete.它知道这个,因为我在它的构造函数中传递它!看起来有点像魔术,但我可以向你保证它是设计上的并且非常好."
所以,判断我们.如何实现shared_ptr而不需要多态类具有虚拟析构函数是否可能(如果是)?提前致谢
我通过在软件中进行所有必要的计算来在2D画布上渲染3D对象.我没有使用图形加速.
最初所有的对象都是相同大小的立方体,所以我可以根据它们在相机Z中的距离对它们进行排序,这样就可以正确地对它们进行排序.但现在我正在尝试绘制不同尺寸的立方体.这使得我的简单z排序算法在透视投影中失败.
我查看了计算机图形书籍并找到了所使用的技术,他们最终推荐基于像素的两个多边形比较,以确定哪一个比其他多边形领先.可能这就是他们在显卡中做的事情.但是在软件中这样做似乎过于困难,我想即使我能做到这一点,实际使用也会很慢.
在软件中有一个简单的技巧吗?3D图形早期的任何例子,当图形卡不可用时?
虽然这是一般的3D图形问题,如果它有帮助,我在HTML5 Canvas 2D API之上做这个.
在PHP中,我可以尝试调用对象上可能存在的任何方法,如下所示:
$object->{$method}();
$object我们的PHP对象在哪里,是$method我们想要调用的方法的名称.我可以用这种方式动态调用任何方法.
有没有C#等同于此?或者我只是"做错了"?我有一个通过Reflection加载的插件/模块,我想调用一个未在接口中定义的方法.
谢谢!
大家好我需要加密文本什么是以编程方式使用的最佳加密?
一般来说,我有输入文件,我需要加密字符串,然后在应用程序中读取文件
解密它为应用程序流程.
用c ++
Zend_Registry是否会在下次用户请求之前生效?
我将此代码放在zend项目中index.php文件的末尾:(现有zend网站内的代码)
试用代码:
//end of index.php file
Bootstrap::run();
//trial for find out the life of Zend_Registry.
$registry = Zend_Registry::getInstance();
if (!isset($registry['index1'])) {
Zend_Registry::set('index1', 'value7');
echo '<h1>Zend_Registry was unset</h1>';
} else {
echo '<h1>Zend_Registry was set</h1>';
}
Run Code Online (Sandbox Code Playgroud)
每次点击主页后的结果:
Zend_Registry没有成立
谢谢
由于我是WPF FlowDocuments的新手,我想问下面的代码是否正确.它应该返回FlowDocument中包含的所有图像作为List:
List<Image> FindAllImagesInParagraph(Paragraph paragraph)
{
List<Image> result = null;
foreach (var inline in paragraph.Inlines)
{
var inlineUIContainer = inline as InlineUIContainer;
if (inlineUIContainer != null)
{
var image = inlineUIContainer.Child as Image;
if (image != null)
{
if (result == null)
result = new List<Image>();
result.Add(image);
}
}
}
return result;
}
private List<Image> FindAllImagesInDocument(FlowDocument Document)
{
List<Image> result = new List<Image>();
foreach (var block in Document.Blocks)
{
if (block is Table)
{
var table = block as Table; …Run Code Online (Sandbox Code Playgroud) 我试图找出使用下面的类锁定文件的进程.这里出了什么问题?
呼叫:
private void button1_Click(object sender, EventArgs e)
{
Console.WriteLine(Win32Processes.GetProcessesLockingFile("locked_file.dll").ToString());
}
Run Code Online (Sandbox Code Playgroud)
输出:
System.Collections.Generic.List`1 [的System.Diagnostics.Process]
使用此电话:
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Text;
using System.Threading;
namespace FileLockInfo {
public class Win32Processes {
/// <summary>
/// Return a list of processes that hold on the given file.
/// </summary>
public static List<Process> GetProcessesLockingFile (string filePath) {
var procs = new List<Process>();
foreach (var process in Process.GetProcesses()) {
var files = GetFilesLockedBy(process);
if (files.Contains(filePath)) procs.Add(process);
}
return procs;
}
/// …Run Code Online (Sandbox Code Playgroud) 如何将HTML5显示<video>为网站的全屏背景?与此Flash网站演示类似...
http://activeden.net/item/full-screen-video-background-template-v2/full_screen_preview/29617
有没有办法在每次调用某个函数时在C或C++中正在运行的进程中转储调用堆栈?我的想法是这样的:
void foo()
{
print_stack_trace();
// foo's body
return
}
Run Code Online (Sandbox Code Playgroud)
其中的print_stack_trace工作方式类似于callerPerl.
或类似的东西:
int main (void)
{
// will print out debug info every time foo() is called
register_stack_trace_function(foo);
// etc...
}
Run Code Online (Sandbox Code Playgroud)
在哪里register_stack_trace_function放置某种内部断点,这将导致在调用时打印堆栈跟踪foo.
在某些标准C库中是否存在这样的事情?
我正在使用GCC在Linux上工作.
我有一个测试运行,基于一些不应该影响此行为的命令行开关,行为不同.我的代码有一个伪随机数生成器,我假设它是基于这些开关被不同地调用的.我希望能够使用每组开关运行测试,并查看随机数生成器是否针对每个开关进行不同的调用.
我认为这很简单,但文档并没有指出任何解决方案.我正在编辑.虽然我使用$ .ajax一次保存多个表单我想执行相同的帖子,但有一个完整的页面重新加载.我怎么能实现这一目标?
触发预览BTN - >收集表格 - >常规发布到preview.php - >渲染preview.php
有任何想法吗?
非常感谢你!
c++ ×3
c# ×2
php ×2
.net ×1
3d ×1
c ×1
callstack ×1
destructor ×1
encryption ×1
flowdocument ×1
html5-video ×1
jquery ×1
linux ×1
post ×1
process ×1
reflection ×1
text ×1
wpf ×1