Articles of construtor de

Ordem de chamada de construtor na inheritance virtual

class A { int i; public: A() {cout<<"in A's def const\n";}; A(int k) {cout<<"In A const\n"; i = k; } }; class B : virtual public A { public: B(){cout<<"in B's def const\n";}; B(int i) : A(i) {cout<<"in B const\n";} }; class C : public B { public: C() {cout<<"in C def cstr\n";} C(int i) […]

Como obter os nomes dos parâmetros dos construtores de um object (reflection)?

Digamos que de alguma forma eu tenha uma referência de object de outra class: Object myObj = anObject; Agora eu posso pegar a class desse object: Class objClass = myObj.getClass(); Agora, posso obter todos os construtores desta class: Constructor[] constructors = objClass.getConstructors(); Agora eu posso fazer um loop em cada construtor: if (constructors.length > 0) […]

Como esta referência a uma class externa pode escaping através da publicação de uma instância de class interna?

Isso foi feito um pouco diferente antes, mas pedindo uma resposta sim / não, mas estou procurando a explicação que está faltando no livro (Java Concurrency in Practice), de como esse aparente grande erro seria explorado maliciosamente ou acidentalmente. Um mecanismo final pelo qual um object ou seu estado interno pode ser publicado é publicar […]

Um construtor ou destruidor ‘vazio’ fará a mesma coisa que o gerado?

Suponha que tenhamos uma class C ++ (de brinquedo) como a seguinte: class Foo { public: Foo(); private: int t; }; Como nenhum destruidor é definido, um compilador C ++ deve criar um automaticamente para a class Foo. Se o destruidor não precisar limpar qualquer memory alocada dinamicamente (isto é, poderíamos confiar razoavelmente no destruidor […]

mecanismo de invocação de construtor

struct my { my(){ std::cout<<"Default";} my(const my& m){ std::cout<<"Copy";} ~my(){ std::cout<<"Destructor";} }; int main() { my m(); //1 my n(my()); //2 } Produção esperada: 1 ) Default 2 ) Copy Saída real: O que há de errado com meu entendimento do mecanismo de invocação do construtor? Note que omiti arquivos de header por brevidade.

Sincronização de construtor em Java

Alguém em algum lugar me disse que os construtores Java são sincronizados para que não possam ser acessados ​​simultaneamente durante a construção, e fiquei me perguntando: se eu tenho um construtor que armazena o object em um mapa, e outro thread o recupera desse mapa antes de sua construção está terminado, esse bloco de encadeamento […]

Por que os construtores não podem ser herdados em java?

Eu sou um iniciante em linguagem de programação java, recentemente eu estudei que os construtores não podem ser herdados em java, Alguém pode explicar por quê ? Eu já li esse link do C ++

Cópia profunda de uma matriz de objects

Eu quero fazer uma cópia profunda de uma matriz de objects usando um construtor. public class PositionList { private Position[] data = new Position[0]; public PositionList(PositionList other, boolean deepCopy) { if (deepCopy){ size=other.getSize(); data=new Position[other.data.length]; for (int i=0;i<data.length;i++){ data[i]=other.data[i]; } No entanto, o que eu tenho acima por algum motivo não está funcionando. Eu tenho […]

Por que o compilador c # emite Activator.CreateInstance ao chamar new in com um tipo genérico com uma restrição new ()?

Quando você tem código como o seguinte: static T GenericConstruct() where T : new() { return new T(); } O compilador C # insiste em emitir uma chamada para Activator.CreateInstance, que é consideravelmente mais lenta que um construtor nativo. Eu tenho a seguinte solução alternativa: public static class ParameterlessConstructor where T : new() { public […]

Qual é a maneira mais confiável de proibir um construtor de cópia em C ++?

Às vezes é necessário proibir um construtor de cópia em uma class C ++ para que a class se torne “não copiável”. Naturalmente, operator= deve ser proibido ao mesmo tempo. Até agora eu vi duas maneiras de fazer isso. A maneira 1 é declarar o método como privado e não fornecer implementação: class Class { […]