1970年代に入ると、家庭用テープレコーダーは、コンパクトカセットタイプのものも音楽鑑賞に堪え得る音質にまで達しており、特にラジオ付きカセットテープレコーダー（ラジカセ）が普及すると、これをカラオケ用の装置として使うようになった（高級なラジカセにはマイク接続とミキシングによる拡声器機能が付いていた）。1980年代後半には、レーザーディスクによるカラオケシステムが現れ、ある程度の普及を見た。これはメディアの性質上、映像が含まれており、テレビ画面上に映像と歌詞を表示して使われた。プレーヤーは一般のものと異なり、マイク入力とそれへのエフェクト機構があった。さらに選曲ボタンが多かったりと、カラオケ使用のための操作ボタンを備えていた。家庭用ゲーム機でもPCエンジンではCD-G、ドリームキャストやWiiでは通信カラオケによるカラオケシステムに対応している。音源媒体については、1970年代初めごろよりラジオ番組の中でカラオケ（伴奏のみの音楽）を流す企画もあり、これを録音する聴取者も居た。また、市販のレコードにはカラオケがほとんど存在しなかったが、ミュージックテープ（音楽カセット）では、カラオケのみを収録したものが多くラインナップされた。テレビの歌番組で歌手の歌に合わせて歌詞の字幕スーパーが放映されるようになって以後、楽曲によっては販売されるCD自体にカラオケが収録されるようにもなった。特別にカラオケの音源がなくとも自宅でカラオケができるようにもなった。1995年には家庭向けの通信カラオケが登場しているが、普及の度合いはまだ少ない。また、カラオケ機能を搭載したゲームなども数多く出ている。（任天堂の「大合奏!バンドブラザーズDX」「カラオケJOYSOUND Wii」やなど）
初期はテレビ画面そのものが無く、紙を見て歌った。その後、テレビ画面に字幕が出るようになり、その字幕の通りに歌うが、かつては同じ背景しか出なかった。その後、曲のタイトルや歌詞の意味にあわせた、一種の寸劇ともいえる映像が追加された。これは地域性としてご当地ソングや歌詞の重みのあるフォークソングで重要視される。たとえば狩人の曲『あずさ2号』の場合は特急あずさの走行シーンが流れるといった具合である。2000年代から、通信カラオケの進化に伴い、「本人映像」「アニメ映像」が登場し、歌唱者本人による当時の映像・ライブ映像や、ミュージック・ビデオ、アニメやドラマ、映画本編の映像（OP映像を繰り返し流すだけのものや、OPと劇中の映像を合わせてPV風に編集したものとがある）が流れる。
昼カラの意味は、広義には、昼間にカラオケを行うことだが、近年では、昼間にカラオケを行うことができる飲食店を「昼カラ」と呼ぶ。歌好きが昼間集う場のため、基本的にはお酒を飲まない。超高齢化社会を迎えた日本の高齢者が近隣の居住者と昼間気軽に交流する場として全国に普及中。昼カラ店の種類は、１.夜営業するスナックが昼間カラオケ店を営業する業態。２.喫茶店、蕎麦屋など飲食店がカラオケ装置を設置し、昼間、カラオケ店を行う業態。喫茶店の行う昼カラは、「カラオケ喫茶」とも呼ばれている。３.カラオケボックスの昼の営業時間。４，近年、昼間カラオケを行う人だけを対象に開店した昼カラ専門店もある。 いずれも安価に入店し、歌うことができる。 (ノンアルコールドリンク一杯付き時間制限無しで1,000円程度が一般的）お店の一般的な仕組みは、昼間お店に来店する個人やグループが、ワンフロアーで、お店のルール、店員の指示に従い 順番にカラオケを行い店員と来店者、また来店者同士が適度に対話する形態。店員の接遇により、アットホームな雰囲気。見知らぬ人の前で歌い、新たな対話、共感が発生する社交の場。昼カラの歴史は、昭和時代に出現し、全国各地に急増した、現在では、店舗オーナー、来店客の高齢化で、均衡縮小傾向の地域がある一方で、平成の超高齢化社会、ブームが起こっている地域もある。近年では、高齢者の健康促進の場としても注目されており、昼カラを研究・支援する団体も現れている。
デストラクタはオブジェクトの寿命が終了するタイミング、メモリ領域が破棄される直前に自動的に呼び出される。具体的には自動変数（ローカル変数）ならばその変数が属するブロックを抜けた直後、静的オブジェクトならばプログラム終了直前、new演算子で生成したオブジェクトならばdelete演算子が適用された時である。主にコンストラクタで確保したリソースを解放するための処理が記述される。派生クラスの場合は、まず派生クラスのデストラクタが呼ばれて派生クラスによる追加部分が解体されてから、基底クラスのデストラクタが順次呼ばれることでオブジェクトが解体される。基底クラスのポインタで派生クラスのインスタンスをポリモーフィックに利用する場合は、基底クラスのデストラクタを仮想関数にしなければならない（仮想デストラクタ）。これはポインタが参照するインスタンスをdeleteする際に呼び出されるデストラクタがポインタの型で決定されるため、基底クラスのデストラクタが仮想でない場合は、基底クラスのデストラクタだけが呼ばれて派生クラスのデストラクタが呼ばれないためである。基底クラスが仮想デストラクタを持っていれば、実際のインスタンスに応じて派生クラスのデストラクタが正しく呼び出される。自動変数のデストラクタは、例外でブロックを脱出した際にも呼び出される。そのため、コンストラクタでリソースを確保し、デストラクタでリソースを解放するクラスを自動変数として生成することで、ブロック中のどこから例外が投げられてもリソースの解放が確実に行われる。このイディオムをRAII (Resource Acquisition Is Initialization) という。デストラクタは例外を投げるべきではない。先に述べたようにデストラクタは例外伝播中にも呼ばれる可能性があるが、その時にデストラクタがさらに例外を投げると二重例外となり、プログラムの強制終了を招くからである。デストラクタは、プログラマが定義しない場合にC++コンパイラが暗黙に生成するメンバー関数のうちの一つである。暗黙のデストラクタの仕様は「中身が空」で「非仮想」となっている。デストラクタの名前は、クラス名の前に~記号を付けたものと決められている。