标签: new-operator

在新窗口中打开按钮?

如何在新窗口中打开按钮,模拟"a href,target = _blank"?

我目前有:

<button class="button" onClick="window.location.href='http://www.example.com';"> 
     <span class="icon">Open</span>
</button>
Run Code Online (Sandbox Code Playgroud)

按钮不在表单中,我只想在新窗口中打开它.

html javascript window button new-operator

29
推荐指数
4
解决办法
14万
查看次数

如何用Ruby干净地初始化Ruby中的属性?

class Foo
  attr_accessor :name, :age, :email, :gender, :height

  def initalize params
    @name = params[:name]
    @age = params[:age]
    @email = params[:email]
    .
    .
    .
  end
Run Code Online (Sandbox Code Playgroud)

这似乎是一种愚蠢的做法.在Ruby中初始化对象的更好/更惯用的方法是什么?

Ruby 1.9.3

ruby object new-operator ruby-1.9.3

29
推荐指数
4
解决办法
2万
查看次数

C++的新操作是否保证地址返回的对齐?

大多数有经验的程序员都知道数据对齐对于程序的性能很重要.我看到一些程序员编写的程序分配比他们需要的更大的缓冲区大小,并使用对齐的指针作为开始.我想知道我应该在我的程序中这样做,我不知道是否有任何保证C++的新操作返回的地址对齐.所以我写了一个小程序来测试

for(size_t i = 0; i < 100; ++i) {
    char *p = new char[123];
    if(reinterpret_cast<size_t>(p) % 4) {
        cout << "*";
        system("pause");
    }
    cout << reinterpret_cast<void *>(p) << endl;
}
for(size_t i = 0; i < 100; ++i) {
    short *p = new short[123];
    if(reinterpret_cast<size_t>(p) % 4) {
        cout << "*";
        system("pause");
    }
    cout << reinterpret_cast<void *>(p) << endl;
}
for(size_t i = 0; i < 100; ++i) {
    float *p = new float[123];
    if(reinterpret_cast<size_t>(p) % 4) {
        cout …
Run Code Online (Sandbox Code Playgroud)

c++ performance alignment new-operator

28
推荐指数
5
解决办法
2万
查看次数

在C++中删除对象

这是我的示例代码:

void test()
{
   Object1 *obj = new Object1();
   .
   .
   .
   delete obj;
}
Run Code Online (Sandbox Code Playgroud)

我在Visual Studio中运行它,它在'delete obj;'的行中崩溃.这不是释放与对象关联的内存的正常方法吗?我意识到它会自动调用析构函数......这是正常的吗?


这是一段代码:

    if(node->isleaf())
    {
        vector<string> vec = node->L;
        vec.push_back(node->code);
        sort(vec.begin(), vec.end());

        Mesh* msh = loadLeaves(vec, node->code);

        Simplification smp(msh);

        smp.simplifyErrorBased(errorThreshold);

        int meshFaceCount = msh->faces.size();

        saveLeaves(vec, msh);

        delete msh;
    }
Run Code Online (Sandbox Code Playgroud)

loadleaves()是一个从磁盘读取网格并创建一个Mesh对象并返回它的函数.(想想vec并且node->code只是有关要打开的文件的信息)

我应该删除该delete msh;线路吗?

c++ memory-management object new-operator

28
推荐指数
2
解决办法
14万
查看次数

用于堆上内存分配的新运算符

我正在看新操作员的签名.这是:

void* operator new (std::size_t size) throw (std::bad_alloc);
Run Code Online (Sandbox Code Playgroud)

但是当我们使用这个运算符时,我们从不使用强制转换.即

 int *arr = new int;
Run Code Online (Sandbox Code Playgroud)

那么,如何C++类型的指针转换void*int*在这种情况下.因为,即使malloc返回a void*,我们也需要明确使用强制转换.

c++ memory-management new-operator dynamic-memory-allocation operator-keyword

28
推荐指数
2
解决办法
9567
查看次数

如何覆盖(而非隐藏)C#子类中的成员变量(字段)?

我希望这能告诉我ItemA和ItemB的名称.它应该告诉我"Subitem \nSubitem",但它告诉我"Item \nSubitem".这是因为Subitem类中定义的"Name"变量在技术上是与基础Item类中定义的"Name"变量不同的变量.我想将原始变量更改为新值.我不明白为什么这不是最简单的事情,考虑虚拟和覆盖完美的方法工作.我一直无法找到如何实际覆盖变量.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine(ItemA.Name);
            System.Console.WriteLine(ItemB.Name);
            System.Console.ReadKey();
        }
        static Item ItemA = new Subitem();
        static Subitem ItemB = new Subitem();
    }
    public class Item
    {
        public string Name = "Item";
    }
    public class Subitem : Item
    {
        new public string Name = "Subitem";
    }
}
Run Code Online (Sandbox Code Playgroud)

c# variables overriding new-operator

28
推荐指数
4
解决办法
4万
查看次数

新Integer(123),Integer.valueOf(123)和123之间的差异

我看到代码(Java)是这样的:

myMethod(new Integer(123));
Run Code Online (Sandbox Code Playgroud)

我目前正在重构一些代码,并且在Sonar工具中有一个提示,使用这样的内存更友好:

myMethod(Integer.valueOf(123));
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,我认为如果我使用的话没有区别:

myMethod(123);
Run Code Online (Sandbox Code Playgroud)

我能理解,如果我将一个变量传递给该方法,但是硬编码为int?或者,如果有长/双等,我想要长数字表示.但是整数?

java integer new-operator value-of

28
推荐指数
2
解决办法
4万
查看次数

JavaScript:使用没有运算符'new'的构造函数

请帮助我理解以下代码的工作原理:

<script>
    var re = RegExp('\\ba\\b') ;
    alert(re.test('a')) ;
    alert(re.test('ab')) ;
</script>
Run Code Online (Sandbox Code Playgroud)

在第一行没有new运营商.

据我所知,JavaScript中的一个构造函数是一个初始化运算符创建的对象的函数,new它们并不意味着返回任何东西.

javascript constructor new-operator object-construction

27
推荐指数
2
解决办法
5642
查看次数

什么相当于C中的C++新/删除?

什么相当于C中的C++新/删除?

或者它在C/C++中是一样的?

c c++ new-operator delete-operator

27
推荐指数
3
解决办法
6万
查看次数

对象之间的区别a = new Dog()vs Dog a = new Dog()

object a = new Dog();
Run Code Online (Sandbox Code Playgroud)

VS

Dog a = new Dog();
Run Code Online (Sandbox Code Playgroud)

在两种情况下a.GetType()给出Dog.两者都调用相同的构造函数(具有相同的层次结构).

那么请你告诉我这两个陈述之间的区别吗?

c# object new-operator

27
推荐指数
4
解决办法
1916
查看次数