how to initialize dynamic object array












-2















what if i create array of objects dynamically , then how to initialize instance data members . Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.










share|improve this question


















  • 7





    Use std::vector and spare your sanity.

    – NathanOliver
    Nov 21 '18 at 16:14
















-2















what if i create array of objects dynamically , then how to initialize instance data members . Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.










share|improve this question


















  • 7





    Use std::vector and spare your sanity.

    – NathanOliver
    Nov 21 '18 at 16:14














-2












-2








-2








what if i create array of objects dynamically , then how to initialize instance data members . Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.










share|improve this question














what if i create array of objects dynamically , then how to initialize instance data members . Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.







c++ arrays constructor new-operator






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 16:12









YUVRAJ SINGHYUVRAJ SINGH

1




1








  • 7





    Use std::vector and spare your sanity.

    – NathanOliver
    Nov 21 '18 at 16:14














  • 7





    Use std::vector and spare your sanity.

    – NathanOliver
    Nov 21 '18 at 16:14








7




7





Use std::vector and spare your sanity.

– NathanOliver
Nov 21 '18 at 16:14





Use std::vector and spare your sanity.

– NathanOliver
Nov 21 '18 at 16:14












1 Answer
1






active

oldest

votes


















0















Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.




The canonical way in the c++ language is to use std::vector:



std::vector<int> array(10, 42);
// ^ ^
// | | the value
// | the size


Another way to initialize the std::vector with different values is to use a std::initializer_list like so:



std::vector<int> array = { 1, 2 , 3, 4, 5, 6 , 55, 0, -2, 42, -16 };




Note:



In c++ you should use new and delete only for very rare cases in your own code. These are really advanced and you have to be 100% sure that your use case really demands to do that.



Manual memory management is usually not necessary at all, and the c++ standard library provides




  • a very broad collection of Container classes

  • a number of Smart pointer classes


which relieve you from all of the pitfalls of manual dynamic memory management.

Just use that stuff, anyone who demands you to do something else is most probably incompetent, or was fooled by myths telling that using the stuff from the standard library would imply a significant performance impact.






share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53416195%2fhow-to-initialize-dynamic-object-array%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0















    Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.




    The canonical way in the c++ language is to use std::vector:



    std::vector<int> array(10, 42);
    // ^ ^
    // | | the value
    // | the size


    Another way to initialize the std::vector with different values is to use a std::initializer_list like so:



    std::vector<int> array = { 1, 2 , 3, 4, 5, 6 , 55, 0, -2, 42, -16 };




    Note:



    In c++ you should use new and delete only for very rare cases in your own code. These are really advanced and you have to be 100% sure that your use case really demands to do that.



    Manual memory management is usually not necessary at all, and the c++ standard library provides




    • a very broad collection of Container classes

    • a number of Smart pointer classes


    which relieve you from all of the pitfalls of manual dynamic memory management.

    Just use that stuff, anyone who demands you to do something else is most probably incompetent, or was fooled by myths telling that using the stuff from the standard library would imply a significant performance impact.






    share|improve this answer






























      0















      Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.




      The canonical way in the c++ language is to use std::vector:



      std::vector<int> array(10, 42);
      // ^ ^
      // | | the value
      // | the size


      Another way to initialize the std::vector with different values is to use a std::initializer_list like so:



      std::vector<int> array = { 1, 2 , 3, 4, 5, 6 , 55, 0, -2, 42, -16 };




      Note:



      In c++ you should use new and delete only for very rare cases in your own code. These are really advanced and you have to be 100% sure that your use case really demands to do that.



      Manual memory management is usually not necessary at all, and the c++ standard library provides




      • a very broad collection of Container classes

      • a number of Smart pointer classes


      which relieve you from all of the pitfalls of manual dynamic memory management.

      Just use that stuff, anyone who demands you to do something else is most probably incompetent, or was fooled by myths telling that using the stuff from the standard library would imply a significant performance impact.






      share|improve this answer




























        0












        0








        0








        Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.




        The canonical way in the c++ language is to use std::vector:



        std::vector<int> array(10, 42);
        // ^ ^
        // | | the value
        // | the size


        Another way to initialize the std::vector with different values is to use a std::initializer_list like so:



        std::vector<int> array = { 1, 2 , 3, 4, 5, 6 , 55, 0, -2, 42, -16 };




        Note:



        In c++ you should use new and delete only for very rare cases in your own code. These are really advanced and you have to be 100% sure that your use case really demands to do that.



        Manual memory management is usually not necessary at all, and the c++ standard library provides




        • a very broad collection of Container classes

        • a number of Smart pointer classes


        which relieve you from all of the pitfalls of manual dynamic memory management.

        Just use that stuff, anyone who demands you to do something else is most probably incompetent, or was fooled by myths telling that using the stuff from the standard library would imply a significant performance impact.






        share|improve this answer
















        Because at the time of using new keyword only array dimension can be mentioned not the arguments for constructor.




        The canonical way in the c++ language is to use std::vector:



        std::vector<int> array(10, 42);
        // ^ ^
        // | | the value
        // | the size


        Another way to initialize the std::vector with different values is to use a std::initializer_list like so:



        std::vector<int> array = { 1, 2 , 3, 4, 5, 6 , 55, 0, -2, 42, -16 };




        Note:



        In c++ you should use new and delete only for very rare cases in your own code. These are really advanced and you have to be 100% sure that your use case really demands to do that.



        Manual memory management is usually not necessary at all, and the c++ standard library provides




        • a very broad collection of Container classes

        • a number of Smart pointer classes


        which relieve you from all of the pitfalls of manual dynamic memory management.

        Just use that stuff, anyone who demands you to do something else is most probably incompetent, or was fooled by myths telling that using the stuff from the standard library would imply a significant performance impact.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 21 '18 at 18:23

























        answered Nov 21 '18 at 18:06









        πάντα ῥεῖπάντα ῥεῖ

        72.3k974137




        72.3k974137






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53416195%2fhow-to-initialize-dynamic-object-array%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Create new schema in PostgreSQL using DBeaver

            Deepest pit of an array with Javascript: test on Codility

            Costa Masnaga