问题列表 - 第36597页

shared_ptr魔术:)

Lidström先生和我有一个争论 :)

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而不需要多态类具有虚拟析构函数是否可能(如果是)?提前致谢

c++ destructor smart-pointers

82
推荐指数
3
解决办法
1万
查看次数

如何正确地在软件中进行z排序

我通过在软件中进行所有必要的计算来在2D画布上渲染3D对象.我没有使用图形加速.

最初所有的对象都是相同大小的立方体,所以我可以根据它们在相机Z中的距离对它们进行排序,这样就可以正确地对它们进行排序.但现在我正在尝试绘制不同尺寸的立方体.这使得我的简单z排序算法在透视投影中失败.

我查看了计算机图形书籍并找到了所使用的技术,他们最终推荐基于像素的两个多边形比较,以确定哪一个比其他多边形领先.可能这就是他们在显卡中做的事情.但是在软件中这样做似乎过于困难,我想即使我能做到这一点,实际使用也会很慢.

在软件中有一个简单的技巧吗?3D图形早期的任何例子,当图形卡不可用时?

虽然这是一般的3D图形问题,如果它有帮助,我在HTML5 Canvas 2D API之上做这个.

3d

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

C#等效的PHP动态方法调用

在PHP中,我可以尝试调用对象上可能存在的任何方法,如下所示:

$object->{$method}();

$object我们的PHP对象在哪里,是$method我们想要调用的方法的名称.我可以用这种方式动态调用任何方法.

有没有C#等同于此?或者我只是"做错了"?我有一个通过Reflection加载的插件/模块,我想调用一个未在接口中定义的方法.

谢谢!

php c# reflection

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

用于保护文本的最强加密是什么?

大家好我需要加密文本什么是以编程方式使用的最佳加密?
一般来说,我有输入文件,我需要加密字符串,然后在应用程序中读取文件
解密它为应用程序流程.
用c ++

c++ encryption text

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

Zend_Registry是否会在下次用户请求之前生效?

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没有成立

谢谢

php zend-framework zend-framework-mvc

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

查找FlowDocument中的所有图像

由于我是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)

wpf flowdocument

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

什么进程锁定文件?

我试图找出使用下面的类锁定文件的进程.这里出了什么问题?

呼叫:

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)

.net c# process

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

42
推荐指数
3
解决办法
10万
查看次数

用C或C++打印调用堆栈

有没有办法在每次调用某个函数时在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上工作.


背景

我有一个测试运行,基于一些不应该影响此行为的命令行开关,行为不同.我的代码有一个伪随机数生成器,我假设它是基于这些开关被不同地调用的.我希望能够使用每组开关运行测试,并查看随机数生成器是否针对每个开关进行不同的调用.

c c++ linux callstack

98
推荐指数
8
解决办法
15万
查看次数

jQuery常规帖子没有Ajax

我认为这很简单,但文档并没有指出任何解决方案.我正在编辑.虽然我使用$ .ajax一次保存多个表单我想执行相同的帖子,但有一个完整的页面重新加载.我怎么能实现这一目标?

触发预览BTN - >收集表格 - >常规发布到preview.php - >渲染preview.php

有任何想法吗?

非常感谢你!

jquery post

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